xfs: don't clear the "dinode core" in xfs_inode_alloc
authorChristoph Hellwig <hch@lst.de>
Mon, 29 Mar 2021 18:11:39 +0000 (11:11 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Wed, 7 Apr 2021 21:37:03 +0000 (14:37 -0700)
The xfs_icdinode structure just contains a random mix of inode field,
which are all read from the on-disk inode and mostly not looked at
before reading the inode or initializing a new inode cluster.  The
only exceptions are the forkoff and blocks field, which are used
in sanity checks for freshly allocated inodes.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
fs/xfs/xfs_icache.c

index 54d483e..fae6392 100644 (file)
@@ -63,8 +63,9 @@ xfs_inode_alloc(
        memset(&ip->i_df, 0, sizeof(ip->i_df));
        ip->i_flags = 0;
        ip->i_delayed_blks = 0;
-       memset(&ip->i_d, 0, sizeof(ip->i_d));
        ip->i_d.di_flags2 = mp->m_ino_geo.new_diflags2;
+       ip->i_d.di_nblocks = 0;
+       ip->i_d.di_forkoff = 0;
        ip->i_sick = 0;
        ip->i_checked = 0;
        INIT_WORK(&ip->i_ioend_work, xfs_end_io);