On Mon, Jul 27, 2020 at 05:27:44PM +0800, Xiao Yang wrote: > 1) FS_DAX_FL has been introduced by commit b383a73f2b83. > 2) In future, chattr/lsattr command from e2fsprogs can set/get > inode DAX on XFS by calling ioctl(SETXFLAGS/GETXFLAGS). > > Signed-off-by: Xiao Yang <yangx.jy@xxxxxxxxxxxxxx> Wow sorry for the delay. This looks good. thanks! Reviewed-by: Ira Weiny <ira.weiny@xxxxxxxxx> > --- > fs/xfs/xfs_ioctl.c | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > > diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c > index a190212ca85d..6f22a66777cd 100644 > --- a/fs/xfs/xfs_ioctl.c > +++ b/fs/xfs/xfs_ioctl.c > @@ -1075,13 +1075,18 @@ xfs_merge_ioc_xflags( > xflags |= FS_XFLAG_NODUMP; > else > xflags &= ~FS_XFLAG_NODUMP; > + if (flags & FS_DAX_FL) > + xflags |= FS_XFLAG_DAX; > + else > + xflags &= ~FS_XFLAG_DAX; > > return xflags; > } > > STATIC unsigned int > xfs_di2lxflags( > - uint16_t di_flags) > + uint16_t di_flags, > + uint64_t di_flags2) > { > unsigned int flags = 0; > > @@ -1095,6 +1100,9 @@ xfs_di2lxflags( > flags |= FS_NOATIME_FL; > if (di_flags & XFS_DIFLAG_NODUMP) > flags |= FS_NODUMP_FL; > + if (di_flags2 & XFS_DIFLAG2_DAX) { > + flags |= FS_DAX_FL; > + } > return flags; > } > > @@ -1565,7 +1573,7 @@ xfs_ioc_getxflags( > { > unsigned int flags; > > - flags = xfs_di2lxflags(ip->i_d.di_flags); > + flags = xfs_di2lxflags(ip->i_d.di_flags, ip->i_d.di_flags2); > if (copy_to_user(arg, &flags, sizeof(flags))) > return -EFAULT; > return 0; > @@ -1588,7 +1596,7 @@ xfs_ioc_setxflags( > > if (flags & ~(FS_IMMUTABLE_FL | FS_APPEND_FL | \ > FS_NOATIME_FL | FS_NODUMP_FL | \ > - FS_SYNC_FL)) > + FS_SYNC_FL | FS_DAX_FL)) > return -EOPNOTSUPP; > > fa.fsx_xflags = xfs_merge_ioc_xflags(flags, xfs_ip2xflags(ip)); > -- > 2.21.0 > > >