public inbox for fstests@vger.kernel.org
 help / color / mirror / Atom feed
From: Frank van der Linden <fllinden@amazon.com>
To: <fstests@vger.kernel.org>
Cc: <linux-nfs@vger.kernel.org>, Frank van der Linden <fllinden@amazon.com>
Subject: [PATCH 1/3] common/attr: make _require_attrs more fine-grained
Date: Thu, 10 Sep 2020 19:43:53 +0000	[thread overview]
Message-ID: <20200910194355.5977-1-fllinden@amazon.com> (raw)

Filesystems may not support all xattr types. But, _require_attr assumes
that being able to use "user" namespace xattrs means that all namespaces
("trusted", "system", etc) are supported. This breaks on NFS, that only
supports the "user" namespace, and a few cases in the "system" namespace.

Change _require_attrs to optionally take namespace arguments that specify
the namespaces to check for. The default behavior (no arguments) is still
to check for the "user" namespace only.

Signed-off-by: Frank van der Linden <fllinden@amazon.com>
---
 common/attr | 49 +++++++++++++++++++++++++++++++------------------
 1 file changed, 31 insertions(+), 18 deletions(-)

diff --git a/common/attr b/common/attr
index 20049de0..c60cb6ed 100644
--- a/common/attr
+++ b/common/attr
@@ -175,30 +175,43 @@ _list_acl()
 
 _require_attrs()
 {
+    local args
+    local nsp
+
+    if [ $# -eq 0 ];
+    then
+      args="user"
+    else
+      args="$*"
+    fi
+
     [ -n "$ATTR_PROG" ] || _notrun "attr command not found"
     [ -n "$GETFATTR_PROG" ] || _notrun "getfattr command not found"
     [ -n "$SETFATTR_PROG" ] || _notrun "setfattr command not found"
 
-    #
-    # Test if chacl is able to write an attribute on the target filesystems.
-    # On really old kernels the system calls might not be implemented at all,
-    # but the more common case is that the tested filesystem simply doesn't
-    # support attributes.  Note that we can't simply list attributes as
-    # various security modules generate synthetic attributes not actually
-    # stored on disk.
-    #
-    touch $TEST_DIR/syscalltest
-    attr -s "user.xfstests" -V "attr" $TEST_DIR/syscalltest > $TEST_DIR/syscalltest.out 2>&1
-    cat $TEST_DIR/syscalltest.out >> $seqres.full
+    for nsp in $args
+    do
+      #
+      # Test if chacl is able to write an attribute on the target filesystems.
+      # On really old kernels the system calls might not be implemented at all,
+      # but the more common case is that the tested filesystem simply doesn't
+      # support attributes.  Note that we can't simply list attributes as
+      # various security modules generate synthetic attributes not actually
+      # stored on disk.
+      #
+      touch $TEST_DIR/syscalltest
+      $SETFATTR_PROG -n "$nsp.xfstests" -v "attr" $TEST_DIR/syscalltest > $TEST_DIR/syscalltest.out 2>&1
+      cat $TEST_DIR/syscalltest.out >> $seqres.full
 
-    if grep -q 'Function not implemented' $TEST_DIR/syscalltest.out; then
-      _notrun "kernel does not support attrs"
-    fi
-    if grep -q 'Operation not supported' $TEST_DIR/syscalltest.out; then
-      _notrun "attrs not supported by this filesystem type: $FSTYP"
-    fi
+      if grep -q 'Function not implemented' $TEST_DIR/syscalltest.out; then
+        _notrun "kernel does not support attrs"
+      fi
+      if grep -q 'Operation not supported' $TEST_DIR/syscalltest.out; then
+        _notrun "attr namespace $nsp not supported by this filesystem type: $FSTYP"
+      fi
 
-    rm -f $TEST_DIR/syscalltest.out
+      rm -f $TEST_DIR/syscalltest.out
+    done
 }
 
 _require_attr_v1()
-- 
2.16.6


             reply	other threads:[~2020-09-10 19:46 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-10 19:43 Frank van der Linden [this message]
2020-09-10 19:43 ` [PATCH 2/3] common/attr: set MAX_ATTR values correctly for NFS Frank van der Linden
2020-09-10 19:43 ` [PATCH 3/3] fstests: explicitly specify xattr namespace Frank van der Linden
2020-09-13 16:56 ` [PATCH 1/3] common/attr: make _require_attrs more fine-grained Eryu Guan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200910194355.5977-1-fllinden@amazon.com \
    --to=fllinden@amazon.com \
    --cc=fstests@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox