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
next 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