On Tue, Jul 30, 2019 at 04:40:09PM +0800, Shiyang Ruan wrote: > 'chattr +/-x' only works on a dax device. When checking if the 'x' > attribute is supported by XFS_IO_PROG: > _require_xfs_io_command "chattr" "x" (called by xfs/260) > it's better to do the check on a dax device mounted with dax option. > > Signed-off-by: Shiyang Ruan <ruansy.fnst@xxxxxxxxxxxxxx> > --- > common/rc | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/common/rc b/common/rc > index e0b087c1..73ee5563 100644 > --- a/common/rc > +++ b/common/rc > @@ -2094,11 +2094,22 @@ _require_xfs_io_command() > if [ -z "$param" ]; then > param=s > fi > + > + # Attribute "x" should be tested on a dax device > + if [ "$param" == "x" ]; then > + _scratch_mount "-o dax" > + testfile=$SCRATCH_MNT/$$.xfs_io NAK, the dax mount option is not intended to remain as a long-term interface. Also, "==" is a bashism (which probably is fine for fstests) Also, there's no _require_scratch which means this can totally blow up if the user doesn't specify a scratch device. --D > + fi > + > # Test xfs_io chattr support AND > # filesystem FS_IOC_FSSETXATTR support > testio=`$XFS_IO_PROG -F -f -c "chattr +$param" $testfile 2>&1` > $XFS_IO_PROG -F -f -r -c "chattr -$param" $testfile 2>&1 > param_checked="+$param" > + > + if [ "$param" == "x" ]; then > + _scratch_unmount > + fi > ;; > "chproj") > testio=`$XFS_IO_PROG -F -f -c "chproj 0" $testfile 2>&1` > -- > 2.17.0 > > >