xfs: remove the di_dmevmask and di_dmstate fields from struct xfs_icdinode
The legacy DMAPI fields were never set by upstream Linux XFS, and have no way to be read using the kernel APIs. So instead of bloating the in-core inode for them just copy them from the on-disk inode into the log when logging the inode. The only caveat is that we need to make sure to zero the fields for newly read or deleted inodes, which is solved using a new flag in the inode. 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>
This commit is contained in:
committed by
Darrick J. Wong
parent
55f773380e
commit
9b3beb028f
@@ -840,8 +840,6 @@ xfs_init_new_inode(
|
||||
inode->i_ctime = tv;
|
||||
|
||||
ip->i_d.di_extsize = 0;
|
||||
ip->i_d.di_dmevmask = 0;
|
||||
ip->i_d.di_dmstate = 0;
|
||||
ip->i_d.di_flags = 0;
|
||||
|
||||
if (xfs_sb_version_has_v3inode(&mp->m_sb)) {
|
||||
@@ -2615,9 +2613,10 @@ xfs_ifree(
|
||||
VFS_I(ip)->i_mode = 0; /* mark incore inode as free */
|
||||
ip->i_d.di_flags = 0;
|
||||
ip->i_d.di_flags2 = ip->i_mount->m_ino_geo.new_diflags2;
|
||||
ip->i_d.di_dmevmask = 0;
|
||||
ip->i_d.di_forkoff = 0; /* mark the attr fork not in use */
|
||||
ip->i_df.if_format = XFS_DINODE_FMT_EXTENTS;
|
||||
if (xfs_iflags_test(ip, XFS_IPRESERVE_DM_FIELDS))
|
||||
xfs_iflags_clear(ip, XFS_IPRESERVE_DM_FIELDS);
|
||||
|
||||
/* Don't attempt to replay owner changes for a deleted inode */
|
||||
spin_lock(&iip->ili_lock);
|
||||
|
||||
Reference in New Issue
Block a user