[v2] common/rc: check 'chattr +/-x' on dax device.
diff mbox series

Message ID 20190731022949.2463-1-ruansy.fnst@cn.fujitsu.com
State New
Headers show
Series
  • [v2] common/rc: check 'chattr +/-x' on dax device.
Related show

Commit Message

Shiyang Ruan July 31, 2019, 2:29 a.m. UTC
'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.

Signed-off-by: Shiyang Ruan <ruansy.fnst@cn.fujitsu.com>
---
 common/rc | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Eryu Guan Aug. 4, 2019, 3:26 p.m. UTC | #1
On Wed, Jul 31, 2019 at 10:29:49AM +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.

Hmm, I don't think it's necessary, test should _require_scratch_dax,
which should _notrun the test already, before checking chattr +/-x
support. Do you see any specific problem caused by this issue when
running xfs/260?

> 
> Signed-off-by: Shiyang Ruan <ruansy.fnst@cn.fujitsu.com>
> ---
>  common/rc | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/common/rc b/common/rc
> index e0b087c1..91ab2900 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -2094,11 +2094,23 @@ _require_xfs_io_command()
>  		if [ -z "$param" ]; then
>  			param=s
>  		fi
> +
> +		# Attribute "x" should be tested on a dax device
> +		if [ "$param" = "x" ]; then
> +			_require_scratch_dax
> +			_scratch_mount

$SCRATCH_DEV is wiped before every test, it's wrong to assume the device
is directly mountable. And checking chattr +/-x support doesn't require
scratch device, so it's better not to introduce this dependency
implicitly.

Thanks,
Eryu

> +			testfile=$SCRATCH_MNT/$$.xfs_io
> +		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
> 
> 
>

Patch
diff mbox series

diff --git a/common/rc b/common/rc
index e0b087c1..91ab2900 100644
--- a/common/rc
+++ b/common/rc
@@ -2094,11 +2094,23 @@  _require_xfs_io_command()
 		if [ -z "$param" ]; then
 			param=s
 		fi
+
+		# Attribute "x" should be tested on a dax device
+		if [ "$param" = "x" ]; then
+			_require_scratch_dax
+			_scratch_mount
+			testfile=$SCRATCH_MNT/$$.xfs_io
+		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`