btrfs: factor out a btrfs_verify_page helper
authorChristoph Hellwig <hch@lst.de>
Wed, 31 May 2023 06:04:51 +0000 (08:04 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 19 Jun 2023 11:59:34 +0000 (13:59 +0200)
Split all the conditionals for the fsverity calls in end_page_read into
a btrfs_verify_page helper to keep the code readable and make additional
refactoring easier.

Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_io.c

index 0726c82..8e42ce4 100644 (file)
@@ -481,6 +481,15 @@ void extent_clear_unlock_delalloc(struct btrfs_inode *inode, u64 start, u64 end,
                               start, end, page_ops, NULL);
 }
 
+static bool btrfs_verify_page(struct page *page, u64 start)
+{
+       if (!fsverity_active(page->mapping->host) ||
+           PageError(page) || PageUptodate(page) ||
+           start >= i_size_read(page->mapping->host))
+               return true;
+       return fsverity_verify_page(page);
+}
+
 static void end_page_read(struct page *page, bool uptodate, u64 start, u32 len)
 {
        struct btrfs_fs_info *fs_info = btrfs_sb(page->mapping->host->i_sb);
@@ -489,11 +498,7 @@ static void end_page_read(struct page *page, bool uptodate, u64 start, u32 len)
               start + len <= page_offset(page) + PAGE_SIZE);
 
        if (uptodate) {
-               if (fsverity_active(page->mapping->host) &&
-                   !PageError(page) &&
-                   !PageUptodate(page) &&
-                   start < i_size_read(page->mapping->host) &&
-                   !fsverity_verify_page(page)) {
+               if (!btrfs_verify_page(page, start)) {
                        btrfs_page_set_error(fs_info, page, start, len);
                } else {
                        btrfs_page_set_uptodate(fs_info, page, start, len);