From 2ea9f4d477f4b6b4591b5a7a7624c4ecf6c37068 Mon Sep 17 00:00:00 2001 From: Xiao Yang Date: Mon, 14 Sep 2020 13:13:59 +0800 Subject: [PATCH] common/rc: Check 'tPnE' flags on a directory instead of a regilar file 'tPnE' flags are only valid for a directory so check them on a directory. Signed-off-by: Xiao Yang Reviewed-by: Eryu Guan Signed-off-by: Eryu Guan --- common/rc | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/common/rc b/common/rc index aa5a7409..6487b9f2 100644 --- a/common/rc +++ b/common/rc @@ -2163,14 +2163,23 @@ _require_xfs_io_command() local testio case $command in "chattr") + local testdir=$TEST_DIR/$$.attr_dir + mkdir $TEST_DIR/$$.attr_dir if [ -z "$param" ]; then param=s 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 + # 'tPnE' flags are only valid for a directory so check them on a directory. + if echo "$param" | egrep -q 't|P|n|E'; then + testio=`$XFS_IO_PROG -F -c "chattr +$param" $testdir 2>&1` + $XFS_IO_PROG -F -r -c "chattr -$param" $testdir 2>&1 + else + testio=`$XFS_IO_PROG -F -f -c "chattr +$param" $testfile 2>&1` + $XFS_IO_PROG -F -r -c "chattr -$param" $testfile 2>&1 + fi param_checked="+$param" + rm -rf $testdir 2>&1 > /dev/null ;; "chproj") testio=`$XFS_IO_PROG -F -f -c "chproj 0" $testfile 2>&1` -- 2.30.2