Issue reading of fsverity merkle tree on the fsverity inodes. This way
metadata will be available at I/O completion time.

Signed-off-by: Andrey Albershteyn <[email protected]>
---
 fs/iomap/buffered-io.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c
index bcfbfbf5cf7c..a11e54975df8 100644
--- a/fs/iomap/buffered-io.c
+++ b/fs/iomap/buffered-io.c
@@ -602,6 +602,9 @@ void iomap_read_folio(const struct iomap_ops *ops,
 
        if (iter.pos < i_size_read(iter.inode))
                ctx->vi = fsverity_get_info(iter.inode);
+       if (ctx->vi)
+               fsverity_readahead(ctx->vi, folio->index,
+                                  folio_nr_pages(folio));
 
        while ((ret = iomap_iter(&iter, ops)) > 0)
                iter.status = iomap_read_folio_iter(&iter, ctx,
@@ -672,6 +675,9 @@ void iomap_readahead(const struct iomap_ops *ops,
 
        if (iter.pos < i_size_read(iter.inode))
                ctx->vi = fsverity_get_info(iter.inode);
+       if (ctx->vi)
+               fsverity_readahead(ctx->vi, readahead_index(rac),
+                               readahead_count(rac));
 
        while (iomap_iter(&iter, ops) > 0)
                iter.status = iomap_readahead_iter(&iter, ctx,
-- 
2.51.2



_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to