Commit 997f9640c923 for kernel

commit 997f9640c9238b991b6c8abf5420b37bbba5d867
Merge: 5903c871e214 433fbcac9ebe
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Thu Feb 12 10:41:34 2026 -0800

    Merge tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fsverity/linux

    Pull fsverity updates from Eric Biggers:
     "fsverity cleanups, speedup, and memory usage optimization from
      Christoph Hellwig:

       - Move some logic into common code

       - Fix btrfs to reject truncates of fsverity files

       - Improve the readahead implementation

       - Store each inode's fsverity_info in a hash table instead of using a
         pointer in the filesystem-specific part of the inode.

         This optimizes for memory usage in the usual case where most files
         don't have fsverity enabled.

       - Look up the fsverity_info fewer times during verification, to
         amortize the hash table overhead"

    * tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fsverity/linux:
      fsverity: remove inode from fsverity_verification_ctx
      fsverity: use a hashtable to find the fsverity_info
      btrfs: consolidate fsverity_info lookup
      f2fs: consolidate fsverity_info lookup
      ext4: consolidate fsverity_info lookup
      fs: consolidate fsverity_info lookup in buffer.c
      fsverity: push out fsverity_info lookup
      fsverity: deconstify the inode pointer in struct fsverity_info
      fsverity: kick off hash readahead at data I/O submission time
      ext4: move ->read_folio and ->readahead to readpage.c
      readahead: push invalidate_lock out of page_cache_ra_unbounded
      fsverity: don't issue readahead for non-ENOENT errors from __filemap_get_folio
      fsverity: start consolidating pagecache code
      fsverity: pass struct file to ->write_merkle_tree_block
      f2fs: don't build the fsverity work handler for !CONFIG_FS_VERITY
      ext4: don't build the fsverity work handler for !CONFIG_FS_VERITY
      fs,fsverity: clear out fsverity_info from common code
      fs,fsverity: reject size changes on fsverity files in setattr_prepare

diff --cc fs/btrfs/extent_io.c
index 3df399dc8856,24988520521c..744a1fff6eef
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@@ -1038,19 -1039,12 +1044,19 @@@ static int btrfs_do_readpage(struct fol
  			break;
  		}
  		if (btrfs_folio_test_uptodate(fs_info, folio, cur, blocksize)) {
- 			end_folio_read(folio, true, cur, blocksize);
+ 			end_folio_read(vi, folio, true, cur, blocksize);
  			continue;
  		}
 -		em = get_extent_map(BTRFS_I(inode), folio, cur, end - cur + 1, em_cached);
 +		/*
 +		 * Search extent map for the whole locked range.
 +		 * This will allow btrfs_get_extent() to return a larger hole
 +		 * when possible.
 +		 * This can reduce duplicated btrfs_get_extent() calls for large
 +		 * holes.
 +		 */
 +		em = get_extent_map(BTRFS_I(inode), folio, cur, locked_end - cur + 1, em_cached);
  		if (IS_ERR(em)) {
- 			end_folio_read(folio, false, cur, end + 1 - cur);
+ 			end_folio_read(vi, folio, false, cur, end + 1 - cur);
  			return PTR_ERR(em);
  		}
  		extent_offset = cur - em->start;