[RFC PATCH V2 02/12] fs/xfs: Isolate the physical DAX flag from effective
From: ira . weiny
Date: Fri Jan 10 2020 - 14:31:01 EST
From: Ira Weiny <ira.weiny@xxxxxxxxx>
xfs_ioctl_setattr_dax_invalidate() currently checks if the DAX flag is
changing as a quick check.
But the implementation mixes the physical (XFS_DIFLAG2_DAX) and
effective (S_DAX) DAX flags.
Remove the use of the effective flag when determining if a change of the
physical flag is required.
Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
---
fs/xfs/xfs_ioctl.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
index 7b35d62ede9f..fe37708cea8f 100644
--- a/fs/xfs/xfs_ioctl.c
+++ b/fs/xfs/xfs_ioctl.c
@@ -1195,9 +1195,11 @@ xfs_ioctl_setattr_dax_invalidate(
}
/* If the DAX state is not changing, we have nothing to do here. */
- if ((fa->fsx_xflags & FS_XFLAG_DAX) && IS_DAX(inode))
+ if ((fa->fsx_xflags & FS_XFLAG_DAX) &&
+ (ip->i_d.di_flags2 & XFS_DIFLAG2_DAX))
return 0;
- if (!(fa->fsx_xflags & FS_XFLAG_DAX) && !IS_DAX(inode))
+ if (!(fa->fsx_xflags & FS_XFLAG_DAX) &&
+ !(ip->i_d.di_flags2 & XFS_DIFLAG2_DAX))
return 0;
if (S_ISDIR(inode->i_mode))
--
2.21.0