Commit 9368f0f9419c for kernel

commit 9368f0f9419cde028a6e58331065900ff089bc36
Merge: b04b2e7a6183 ca0d620b0afa
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Dec 1 09:02:34 2025 -0800

    Merge tag 'vfs-6.19-rc1.inode' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

    Pull vfs inode updates from Christian Brauner:
     "Features:

       - Hide inode->i_state behind accessors. Open-coded accesses prevent
         asserting they are done correctly. One obvious aspect is locking,
         but significantly more can be checked. For example it can be
         detected when the code is clearing flags which are already missing,
         or is setting flags when it is illegal (e.g., I_FREEING when
         ->i_count > 0)

       - Provide accessors for ->i_state, converts all filesystems using
         coccinelle and manual conversions (btrfs, ceph, smb, f2fs, gfs2,
         overlayfs, nilfs2, xfs), and makes plain ->i_state access fail to
         compile

       - Rework I_NEW handling to operate without fences, simplifying the
         code after the accessor infrastructure is in place

      Cleanups:

       - Move wait_on_inode() from writeback.h to fs.h

       - Spell out fenced ->i_state accesses with explicit smp_wmb/smp_rmb
         for clarity

       - Cosmetic fixes to LRU handling

       - Push list presence check into inode_io_list_del()

       - Touch up predicts in __d_lookup_rcu()

       - ocfs2: retire ocfs2_drop_inode() and I_WILL_FREE usage

       - Assert on ->i_count in iput_final()

       - Assert ->i_lock held in __iget()

      Fixes:

       - Add missing fences to I_NEW handling"

    * tag 'vfs-6.19-rc1.inode' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (22 commits)
      dcache: touch up predicts in __d_lookup_rcu()
      fs: push list presence check into inode_io_list_del()
      fs: cosmetic fixes to lru handling
      fs: rework I_NEW handling to operate without fences
      fs: make plain ->i_state access fail to compile
      xfs: use the new ->i_state accessors
      nilfs2: use the new ->i_state accessors
      overlayfs: use the new ->i_state accessors
      gfs2: use the new ->i_state accessors
      f2fs: use the new ->i_state accessors
      smb: use the new ->i_state accessors
      ceph: use the new ->i_state accessors
      btrfs: use the new ->i_state accessors
      Manual conversion to use ->i_state accessors of all places not covered by coccinelle
      Coccinelle-based conversion to use ->i_state accessors
      fs: provide accessors for ->i_state
      fs: spell out fenced ->i_state accesses with explicit smp_wmb/smp_rmb
      fs: move wait_on_inode() from writeback.h to fs.h
      fs: add missing fences to I_NEW handling
      ocfs2: retire ocfs2_drop_inode() and I_WILL_FREE usage
      ...

diff --cc include/linux/fs.h
index fdca6f46dd76,33129cda3a99..bc70673b55bb
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@@ -3399,10 -3502,10 +3480,10 @@@ static inline void remove_inode_hash(st
  }

  extern void inode_sb_list_add(struct inode *inode);
- extern void inode_add_lru(struct inode *inode);
+ extern void inode_lru_list_add(struct inode *inode);

 -extern int sb_set_blocksize(struct super_block *, int);
 -extern int sb_min_blocksize(struct super_block *, int);
 +int sb_set_blocksize(struct super_block *sb, int size);
 +int __must_check sb_min_blocksize(struct super_block *sb, int size);

  int generic_file_mmap(struct file *, struct vm_area_struct *);
  int generic_file_mmap_prepare(struct vm_area_desc *desc);