xfs: inode fork allocation depends on XFS_IFEXTENT flag
authorDave Chinner <dchinner@redhat.com>
Tue, 6 Apr 2021 14:01:41 +0000 (07:01 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Wed, 7 Apr 2021 21:37:06 +0000 (14:37 -0700)
Due to confusion on when the XFS_IFEXTENT needs to be set, the
changes in e6a688c33238 ("xfs: initialise attr fork on inode
create") failed to set the flag when initialising the empty
attribute fork at inode creation. Set this flag the same way
xfs_bmap_add_attrfork() does after attry fork allocation.

Fixes: e6a688c33238 ("xfs: initialise attr fork on inode create")
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Tested-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Allison Henderson <allison.henderson@oracle.com>
fs/xfs/xfs_inode.c

index 7c5433e..e26dfcd 100644 (file)
@@ -875,6 +875,7 @@ xfs_init_new_inode(
        if (init_xattrs && xfs_sb_version_hasattr(&mp->m_sb)) {
                ip->i_forkoff = xfs_default_attroffset(ip) >> 3;
                ip->i_afp = xfs_ifork_alloc(XFS_DINODE_FMT_EXTENTS, 0);
+               ip->i_afp->if_flags = XFS_IFEXTENTS;
        }
 
        /*