Today we reject this flag on an already-reflinked inode, but we really need to reject it for any inode on a reflink-capable filesystem until reflink+dax is supported. Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx> --- (um, do we need to catch this when reading from disk as well? If we found a dax-flagged inode on a reflinked fs, then what would we do with it?) diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c index 0ef5ece5634c..63d579c652f2 100644 --- a/fs/xfs/xfs_ioctl.c +++ b/fs/xfs/xfs_ioctl.c @@ -1031,8 +1031,9 @@ xfs_ioctl_setattr_xflags( if ((fa->fsx_xflags & FS_XFLAG_REALTIME) && xfs_is_reflink_inode(ip)) ip->i_d.di_flags2 &= ~XFS_DIFLAG2_REFLINK; - /* Don't allow us to set DAX mode for a reflinked file for now. */ - if ((fa->fsx_xflags & FS_XFLAG_DAX) && xfs_is_reflink_inode(ip)) + /* Don't allow us to set DAX mode on a reflink filesystem for now. */ + if ((fa->fsx_xflags & FS_XFLAG_DAX) && + xfs_sb_version_hasreflink(&ip->i_mount->m_sb)) return -EINVAL; /*