]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
xfs: preserve i_state around inode_init_always in xfs_reinit_inode
authorMateusz Guzik <mjguzik@gmail.com>
Tue, 11 Jun 2024 12:06:23 +0000 (14:06 +0200)
committerChristian Brauner <brauner@kernel.org>
Wed, 12 Jun 2024 12:13:26 +0000 (14:13 +0200)
This is in preparation for the routine starting to zero the field.

De facto coded by Dave Chinner, see:
https://lore.kernel.org/linux-fsdevel/ZmgtaGglOL33Wkzr@dread.disaster.area/

Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
Link: https://lore.kernel.org/r/20240611120626.513952-2-mjguzik@gmail.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/xfs/xfs_icache.c

index 0953163a2d8492ee86a1f22df07dae2ae887f5d8..d31a2c1ac00afb93329ca5767bdf7adfb04a5bdc 100644 (file)
@@ -314,6 +314,7 @@ xfs_reinit_inode(
        dev_t                   dev = inode->i_rdev;
        kuid_t                  uid = inode->i_uid;
        kgid_t                  gid = inode->i_gid;
+       unsigned long           state = inode->i_state;
 
        error = inode_init_always(mp->m_super, inode);
 
@@ -324,6 +325,7 @@ xfs_reinit_inode(
        inode->i_rdev = dev;
        inode->i_uid = uid;
        inode->i_gid = gid;
+       inode->i_state = state;
        mapping_set_large_folios(inode->i_mapping);
        return error;
 }