Message ID | 20210406115923.1738753-3-david@fromorbit.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | xfs: fix eager attr fork init regressions | expand |
On Tue, Apr 06, 2021 at 09:59:21PM +1000, Dave Chinner wrote: > From: Dave Chinner <dchinner@redhat.com> > > 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> Looks good, Reviewed-by: Christoph Hellwig <hch@lst.de>
On 4/6/21 4:59 AM, Dave Chinner wrote: > From: Dave Chinner <dchinner@redhat.com> > > 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> Ok, looks good Reviewed-by: Allison Henderson <allison.henderson@oracle.com> > --- > fs/xfs/xfs_inode.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c > index 3b516ab7f22b..6e3fbe25ef57 100644 > --- a/fs/xfs/xfs_inode.c > +++ b/fs/xfs/xfs_inode.c > @@ -890,6 +890,7 @@ xfs_init_new_inode( > if (init_xattrs && xfs_sb_version_hasattr(&mp->m_sb)) { > ip->i_d.di_forkoff = xfs_default_attroffset(ip) >> 3; > ip->i_afp = xfs_ifork_alloc(XFS_DINODE_FMT_EXTENTS, 0); > + ip->i_afp->if_flags = XFS_IFEXTENTS; > } > > /* >
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 3b516ab7f22b..6e3fbe25ef57 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -890,6 +890,7 @@ xfs_init_new_inode( if (init_xattrs && xfs_sb_version_hasattr(&mp->m_sb)) { ip->i_d.di_forkoff = xfs_default_attroffset(ip) >> 3; ip->i_afp = xfs_ifork_alloc(XFS_DINODE_FMT_EXTENTS, 0); + ip->i_afp->if_flags = XFS_IFEXTENTS; } /*