* xfstests #62 broken on ext4
@ 2011-08-13 14:38 Theodore Ts'o
2011-08-13 15:57 ` Stefan Behrens
2011-08-13 20:14 ` Christoph Hellwig
0 siblings, 2 replies; 6+ messages in thread
From: Theodore Ts'o @ 2011-08-13 14:38 UTC (permalink / raw)
To: linux-ext4, xfs; +Cc: Stefan Behrens
Xfstests #62 was recently enabled by commit b2b36d0a4.
However, this test is failing for ext4 because ext4 doesn't support
extended attributes on anything other than regular files and
directories. This is behavior is documented in the attr(5) man page:
Extended user attributes
Extended user attributes may be assigned to files and directories for
storing arbitrary additional information such as the mime type, charac‐
ter set or encoding of a file. The access permissions for user
attributes are defined by the file permission bits.
The file permission bits of regular files and directories are inter‐
preted differently from the file permission bits of special files and
symbolic links. For regular files and directories the file permission
bits define access to the file's contents, while for device special
files they define access to the device described by the special file.
The file permissions of symbolic links are not used in access checks.
These differences would allow users to consume filesystem resources in
a way not controllable by disk quotas for group or world writable spe‐
cial files and directories.
For this reason, extended user attributes are only allowed for regular
files and directories, and access to extended user attributes is
restricted to the owner and to users with appropriate capabilities for
directories with the sticky bit set (see the chmod(1) manual page for
an explanation of Sticky Directories).
... and it is enforced by the generic fs/xattr.c code in
xattr_permission():
/*
* In the user.* namespace, only regular files and directories can have
* extended attributes. For sticky directories, only the owner and
* privileged users can write attributes.
*/
if (!strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN)) {
if (!S_ISREG(inode->i_mode) && !S_ISDIR(inode->i_mode))
return (mask & MAY_WRITE) ? -EPERM : -ENODATA;
if (S_ISDIR(inode->i_mode) && (inode->i_mode & S_ISVTX) &&
(mask & MAY_WRITE) && !inode_owner_or_capable(inode))
return -EPERM;
}
It looks like XFS is not conformant to documented behaviour and the file
system generic code. The question is how should we fix this? I can
think of a couple of different options
(1) Back out commit b2b36d0a4 and make test #62 XFS-specific again.
(2) Option #1, above, and then also create another test for file systems
with the standard/generic Linux behavior
(3) Modify test #62 so that it can support both the XFS and Linux
generic behavior.
(4) Change the generic code to match what XFS does (despite the design
rationale mentioned in the attr(5) man page).
(5) Change XFS to match the generic behavior, and then change test #62.
What do people think?
- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: xfstests #62 broken on ext4
2011-08-13 14:38 xfstests #62 broken on ext4 Theodore Ts'o
@ 2011-08-13 15:57 ` Stefan Behrens
2011-08-13 20:14 ` Christoph Hellwig
1 sibling, 0 replies; 6+ messages in thread
From: Stefan Behrens @ 2011-08-13 15:57 UTC (permalink / raw)
To: Theodore Ts'o; +Cc: linux-ext4, xfs
On 13.08.2011 16:38, Theodore Ts'o wrote:
> Xfstests #62 was recently enabled by commit b2b36d0a4.
>
> However, this test is failing for ext4 because ext4 doesn't support
> extended attributes on anything other than regular files and
> directories. This is behavior is documented in the attr(5) man page:
> (3) Modify test #62 so that it can support both the XFS and Linux
> generic behavior.
> (5) Change XFS to match the generic behavior, and then change test #62.
I would volunteer for implementing the required changes for option #3
and start next week except people favour option #5.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: xfstests #62 broken on ext4
2011-08-13 14:38 xfstests #62 broken on ext4 Theodore Ts'o
2011-08-13 15:57 ` Stefan Behrens
@ 2011-08-13 20:14 ` Christoph Hellwig
2011-08-14 0:44 ` Ted Ts'o
2011-08-19 14:46 ` Eric Sandeen
1 sibling, 2 replies; 6+ messages in thread
From: Christoph Hellwig @ 2011-08-13 20:14 UTC (permalink / raw)
To: Theodore Ts'o; +Cc: linux-ext4, xfs, Stefan Behrens
[-- Attachment #1: Type: text/plain, Size: 1025 bytes --]
On Sat, Aug 13, 2011 at 10:38:51AM -0400, Theodore Ts'o wrote:
>
> Xfstests #62 was recently enabled by commit b2b36d0a4.
>
> However, this test is failing for ext4 because ext4 doesn't support
> extended attributes on anything other than regular files and
> directories. This is behavior is documented in the attr(5) man page:
As explained to you before that is not the reason why it fails. The
reason is that Andreas Gruenbacher changed return values for certain
xattr operations in commit 55b23bde19c08f14127a27d461a4e079942c7258.
> It looks like XFS is not conformant to documented behaviour and the file
> system generic code.
Care to explain that conclusion? A simple test and/or a look at the
code will reveal that this is not true.
Below is the patch from Andreas that makes the test work properly again
on Linux 3.0+ on XFS, although other filesystem still have some issues
with it. For ext4 that mostly seems the presence of the lost+found
directory, and a different ordering from readdir than expected.
[-- Attachment #2: 2.diff --]
[-- Type: text/plain, Size: 7386 bytes --]
diff --git a/062 b/062
index 5cb6f92..df29e7a 100755
--- a/062
+++ b/062
@@ -84,6 +84,12 @@ _scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs
_scratch_mount || _fail "mount failed"
_create_test_bed
+# In kernels before 3.0.0, getxattr() returns -EPERM for an attribute which
+# cannot exist. Later kernels return -ENODATA.
+invalid_attribute_filter() {
+ sed -e "s:\(No such attribute\|Operation not permitted\):No such attribute or operation not permitted:"
+}
+
if [ "$USE_ATTR_SECURE" = yes ]; then
ATTR_MODES="user security trusted"
else
@@ -119,15 +125,15 @@ for nsp in $ATTR_MODES; do
echo "*** set an empty value for second attribute"
setfattr -h -n $nsp.name2 $SCRATCH_MNT/$inode
- getfattr -m $nsp -n $nsp.name2 $SCRATCH_MNT/$inode
+ getfattr -m $nsp -n $nsp.name2 $SCRATCH_MNT/$inode 2>&1 | invalid_attribute_filter
echo "*** overwrite empty value"
setfattr -h -n $nsp.name2 -v 0xcafe $SCRATCH_MNT/$inode
- getfattr -m $nsp -e hex -n $nsp.name2 $SCRATCH_MNT/$inode
+ getfattr -m $nsp -e hex -n $nsp.name2 $SCRATCH_MNT/$inode 2>&1 | invalid_attribute_filter
echo "*** remove attribute"
setfattr -h -x $nsp.name2 $SCRATCH_MNT/$inode
- getfattr -m $nsp -e hex -n $nsp.name2 $SCRATCH_MNT/$inode
+ getfattr -m $nsp -e hex -n $nsp.name2 $SCRATCH_MNT/$inode 2>&1 | invalid_attribute_filter
echo "*** final list (strings, type=$inode, nsp=$nsp)"
getfattr -m '.' -e hex $SCRATCH_MNT/$inode
diff --git a/062.out b/062.out
index 73fd628..5e3f5d9 100644
--- a/062.out
+++ b/062.out
@@ -55,7 +55,7 @@ user.name2
user.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/reg: user.name2: No such attribute
+SCRATCH_MNT/reg: user.name2: No such attribute or operation not permitted
*** final list (strings, type=reg, nsp=user)
# file: SCRATCH_MNT/reg
user.name=0xbabe
@@ -102,7 +102,7 @@ user.name2
user.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/dir: user.name2: No such attribute
+SCRATCH_MNT/dir: user.name2: No such attribute or operation not permitted
*** final list (strings, type=dir, nsp=user)
# file: SCRATCH_MNT/dir
user.name=0xbabe
@@ -125,13 +125,13 @@ setfattr: SCRATCH_MNT/lnk: Operation not permitted
setfattr: SCRATCH_MNT/lnk: Operation not permitted
*** set an empty value for second attribute
setfattr: SCRATCH_MNT/lnk: Operation not permitted
-SCRATCH_MNT/lnk: user.name2: Operation not permitted
+SCRATCH_MNT/lnk: user.name2: No such attribute or operation not permitted
*** overwrite empty value
setfattr: SCRATCH_MNT/lnk: Operation not permitted
-SCRATCH_MNT/lnk: user.name2: Operation not permitted
+SCRATCH_MNT/lnk: user.name2: No such attribute or operation not permitted
*** remove attribute
setfattr: SCRATCH_MNT/lnk: Operation not permitted
-SCRATCH_MNT/lnk: user.name2: Operation not permitted
+SCRATCH_MNT/lnk: user.name2: No such attribute or operation not permitted
*** final list (strings, type=lnk, nsp=user)
=== TYPE dev/b; NAMESPACE user
@@ -150,13 +150,13 @@ setfattr: SCRATCH_MNT/dev/b: Operation not permitted
setfattr: SCRATCH_MNT/dev/b: Operation not permitted
*** set an empty value for second attribute
setfattr: SCRATCH_MNT/dev/b: Operation not permitted
-SCRATCH_MNT/dev/b: user.name2: Operation not permitted
+SCRATCH_MNT/dev/b: user.name2: No such attribute or operation not permitted
*** overwrite empty value
setfattr: SCRATCH_MNT/dev/b: Operation not permitted
-SCRATCH_MNT/dev/b: user.name2: Operation not permitted
+SCRATCH_MNT/dev/b: user.name2: No such attribute or operation not permitted
*** remove attribute
setfattr: SCRATCH_MNT/dev/b: Operation not permitted
-SCRATCH_MNT/dev/b: user.name2: Operation not permitted
+SCRATCH_MNT/dev/b: user.name2: No such attribute or operation not permitted
*** final list (strings, type=dev/b, nsp=user)
=== TYPE dev/c; NAMESPACE user
@@ -175,13 +175,13 @@ setfattr: SCRATCH_MNT/dev/c: Operation not permitted
setfattr: SCRATCH_MNT/dev/c: Operation not permitted
*** set an empty value for second attribute
setfattr: SCRATCH_MNT/dev/c: Operation not permitted
-SCRATCH_MNT/dev/c: user.name2: Operation not permitted
+SCRATCH_MNT/dev/c: user.name2: No such attribute or operation not permitted
*** overwrite empty value
setfattr: SCRATCH_MNT/dev/c: Operation not permitted
-SCRATCH_MNT/dev/c: user.name2: Operation not permitted
+SCRATCH_MNT/dev/c: user.name2: No such attribute or operation not permitted
*** remove attribute
setfattr: SCRATCH_MNT/dev/c: Operation not permitted
-SCRATCH_MNT/dev/c: user.name2: Operation not permitted
+SCRATCH_MNT/dev/c: user.name2: No such attribute or operation not permitted
*** final list (strings, type=dev/c, nsp=user)
=== TYPE dev/p; NAMESPACE user
@@ -200,13 +200,13 @@ setfattr: SCRATCH_MNT/dev/p: Operation not permitted
setfattr: SCRATCH_MNT/dev/p: Operation not permitted
*** set an empty value for second attribute
setfattr: SCRATCH_MNT/dev/p: Operation not permitted
-SCRATCH_MNT/dev/p: user.name2: Operation not permitted
+SCRATCH_MNT/dev/p: user.name2: No such attribute or operation not permitted
*** overwrite empty value
setfattr: SCRATCH_MNT/dev/p: Operation not permitted
-SCRATCH_MNT/dev/p: user.name2: Operation not permitted
+SCRATCH_MNT/dev/p: user.name2: No such attribute or operation not permitted
*** remove attribute
setfattr: SCRATCH_MNT/dev/p: Operation not permitted
-SCRATCH_MNT/dev/p: user.name2: Operation not permitted
+SCRATCH_MNT/dev/p: user.name2: No such attribute or operation not permitted
*** final list (strings, type=dev/p, nsp=user)
=== TYPE reg; NAMESPACE trusted
@@ -249,7 +249,7 @@ trusted.name2
trusted.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/reg: trusted.name2: No such attribute
+SCRATCH_MNT/reg: trusted.name2: No such attribute or operation not permitted
*** final list (strings, type=reg, nsp=trusted)
# file: SCRATCH_MNT/reg
trusted.name=0xbabe
@@ -298,7 +298,7 @@ trusted.name2
trusted.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/dir: trusted.name2: No such attribute
+SCRATCH_MNT/dir: trusted.name2: No such attribute or operation not permitted
*** final list (strings, type=dir, nsp=trusted)
# file: SCRATCH_MNT/dir
trusted.name=0xbabe
@@ -347,7 +347,7 @@ trusted.name2
trusted.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/lnk: trusted.name2: No such attribute
+SCRATCH_MNT/lnk: trusted.name2: No such attribute or operation not permitted
*** final list (strings, type=lnk, nsp=trusted)
# file: SCRATCH_MNT/lnk
trusted.name=0xbabe
@@ -394,7 +394,7 @@ trusted.name2
trusted.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/dev/b: trusted.name2: No such attribute
+SCRATCH_MNT/dev/b: trusted.name2: No such attribute or operation not permitted
*** final list (strings, type=dev/b, nsp=trusted)
# file: SCRATCH_MNT/dev/b
trusted.name=0xbabe
@@ -441,7 +441,7 @@ trusted.name2
trusted.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/dev/c: trusted.name2: No such attribute
+SCRATCH_MNT/dev/c: trusted.name2: No such attribute or operation not permitted
*** final list (strings, type=dev/c, nsp=trusted)
# file: SCRATCH_MNT/dev/c
trusted.name=0xbabe
@@ -488,7 +488,7 @@ trusted.name2
trusted.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/dev/p: trusted.name2: No such attribute
+SCRATCH_MNT/dev/p: trusted.name2: No such attribute or operation not permitted
*** final list (strings, type=dev/p, nsp=trusted)
# file: SCRATCH_MNT/dev/p
trusted.name=0xbabe
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: xfstests #62 broken on ext4
2011-08-13 20:14 ` Christoph Hellwig
@ 2011-08-14 0:44 ` Ted Ts'o
2011-08-14 16:09 ` Christoph Hellwig
2011-08-19 14:46 ` Eric Sandeen
1 sibling, 1 reply; 6+ messages in thread
From: Ted Ts'o @ 2011-08-14 0:44 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: linux-ext4, xfs, Stefan Behrens
On Sat, Aug 13, 2011 at 04:14:19PM -0400, Christoph Hellwig wrote:
> On Sat, Aug 13, 2011 at 10:38:51AM -0400, Theodore Ts'o wrote:
> >
> > Xfstests #62 was recently enabled by commit b2b36d0a4.
> >
> > However, this test is failing for ext4 because ext4 doesn't support
> > extended attributes on anything other than regular files and
> > directories. This is behavior is documented in the attr(5) man page:
>
> As explained to you before that is not the reason why it fails. The
> reason is that Andreas Gruenbacher changed return values for certain
> xattr operations in commit 55b23bde19c08f14127a27d461a4e079942c7258.
Apologies, I hadn't yet read your mail message while I started digging
into this failure this morning, and the fact that the files got
reordered from what was expected in the output file confused me into
thinking ext4 was failing tests that where the 062.out file expected
successes, and I juped to conclusions.
I see there's an sort command at the very end of _extend_test_bed(), I
presume we should also add a similar "LC_COLLATE=POSIX sort" to the
other "find" command pipelines, and it's easy enough to filter out the
lost+found directory by adding a "! -name lost+found".
- Ted
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: xfstests #62 broken on ext4
2011-08-14 0:44 ` Ted Ts'o
@ 2011-08-14 16:09 ` Christoph Hellwig
0 siblings, 0 replies; 6+ messages in thread
From: Christoph Hellwig @ 2011-08-14 16:09 UTC (permalink / raw)
To: Ted Ts'o; +Cc: Christoph Hellwig, linux-ext4, Stefan Behrens, xfs
On Sat, Aug 13, 2011 at 08:44:17PM -0400, Ted Ts'o wrote:
> I see there's an sort command at the very end of _extend_test_bed(), I
> presume we should also add a similar "LC_COLLATE=POSIX sort" to the
> other "find" command pipelines, and it's easy enough to filter out the
> lost+found directory by adding a "! -name lost+found".
A patch from you or Stefan would be very welcome. Note that at least
for btrfs I see problems with the user.name2 attribute in that test too,
so it might be a bit of effort to sort out what actually is going on.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: xfstests #62 broken on ext4
2011-08-13 20:14 ` Christoph Hellwig
2011-08-14 0:44 ` Ted Ts'o
@ 2011-08-19 14:46 ` Eric Sandeen
1 sibling, 0 replies; 6+ messages in thread
From: Eric Sandeen @ 2011-08-19 14:46 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: linux-ext4, Theodore Ts'o, Stefan Behrens, xfs
> Below is the patch from Andreas that makes the test work properly again
> on Linux 3.0+ on XFS, although other filesystem still have some issues
> with it. For ext4 that mostly seems the presence of the lost+found
> directory, and a different ordering from readdir than expected.
yeah this looks a little cleaner than mine.
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
On 8/13/11 3:14 PM, Christoph Hellwig wrote:
> diff --git a/062 b/062
> index 5cb6f92..df29e7a 100755
> --- a/062
> +++ b/062
> @@ -84,6 +84,12 @@ _scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs
> _scratch_mount || _fail "mount failed"
> _create_test_bed
>
> +# In kernels before 3.0.0, getxattr() returns -EPERM for an attribute which
> +# cannot exist. Later kernels return -ENODATA.
> +invalid_attribute_filter() {
> + sed -e "s:\(No such attribute\|Operation not permitted\):No such attribute or operation not permitted:"
> +}
> +
> if [ "$USE_ATTR_SECURE" = yes ]; then
> ATTR_MODES="user security trusted"
> else
> @@ -119,15 +125,15 @@ for nsp in $ATTR_MODES; do
>
> echo "*** set an empty value for second attribute"
> setfattr -h -n $nsp.name2 $SCRATCH_MNT/$inode
> - getfattr -m $nsp -n $nsp.name2 $SCRATCH_MNT/$inode
> + getfattr -m $nsp -n $nsp.name2 $SCRATCH_MNT/$inode 2>&1 | invalid_attribute_filter
>
> echo "*** overwrite empty value"
> setfattr -h -n $nsp.name2 -v 0xcafe $SCRATCH_MNT/$inode
> - getfattr -m $nsp -e hex -n $nsp.name2 $SCRATCH_MNT/$inode
> + getfattr -m $nsp -e hex -n $nsp.name2 $SCRATCH_MNT/$inode 2>&1 | invalid_attribute_filter
>
> echo "*** remove attribute"
> setfattr -h -x $nsp.name2 $SCRATCH_MNT/$inode
> - getfattr -m $nsp -e hex -n $nsp.name2 $SCRATCH_MNT/$inode
> + getfattr -m $nsp -e hex -n $nsp.name2 $SCRATCH_MNT/$inode 2>&1 | invalid_attribute_filter
>
> echo "*** final list (strings, type=$inode, nsp=$nsp)"
> getfattr -m '.' -e hex $SCRATCH_MNT/$inode
> diff --git a/062.out b/062.out
> index 73fd628..5e3f5d9 100644
> --- a/062.out
> +++ b/062.out
> @@ -55,7 +55,7 @@ user.name2
> user.name2=0xcafe
>
> *** remove attribute
> -SCRATCH_MNT/reg: user.name2: No such attribute
> +SCRATCH_MNT/reg: user.name2: No such attribute or operation not permitted
> *** final list (strings, type=reg, nsp=user)
> # file: SCRATCH_MNT/reg
> user.name=0xbabe
> @@ -102,7 +102,7 @@ user.name2
> user.name2=0xcafe
>
> *** remove attribute
> -SCRATCH_MNT/dir: user.name2: No such attribute
> +SCRATCH_MNT/dir: user.name2: No such attribute or operation not permitted
> *** final list (strings, type=dir, nsp=user)
> # file: SCRATCH_MNT/dir
> user.name=0xbabe
> @@ -125,13 +125,13 @@ setfattr: SCRATCH_MNT/lnk: Operation not permitted
> setfattr: SCRATCH_MNT/lnk: Operation not permitted
> *** set an empty value for second attribute
> setfattr: SCRATCH_MNT/lnk: Operation not permitted
> -SCRATCH_MNT/lnk: user.name2: Operation not permitted
> +SCRATCH_MNT/lnk: user.name2: No such attribute or operation not permitted
> *** overwrite empty value
> setfattr: SCRATCH_MNT/lnk: Operation not permitted
> -SCRATCH_MNT/lnk: user.name2: Operation not permitted
> +SCRATCH_MNT/lnk: user.name2: No such attribute or operation not permitted
> *** remove attribute
> setfattr: SCRATCH_MNT/lnk: Operation not permitted
> -SCRATCH_MNT/lnk: user.name2: Operation not permitted
> +SCRATCH_MNT/lnk: user.name2: No such attribute or operation not permitted
> *** final list (strings, type=lnk, nsp=user)
>
> === TYPE dev/b; NAMESPACE user
> @@ -150,13 +150,13 @@ setfattr: SCRATCH_MNT/dev/b: Operation not permitted
> setfattr: SCRATCH_MNT/dev/b: Operation not permitted
> *** set an empty value for second attribute
> setfattr: SCRATCH_MNT/dev/b: Operation not permitted
> -SCRATCH_MNT/dev/b: user.name2: Operation not permitted
> +SCRATCH_MNT/dev/b: user.name2: No such attribute or operation not permitted
> *** overwrite empty value
> setfattr: SCRATCH_MNT/dev/b: Operation not permitted
> -SCRATCH_MNT/dev/b: user.name2: Operation not permitted
> +SCRATCH_MNT/dev/b: user.name2: No such attribute or operation not permitted
> *** remove attribute
> setfattr: SCRATCH_MNT/dev/b: Operation not permitted
> -SCRATCH_MNT/dev/b: user.name2: Operation not permitted
> +SCRATCH_MNT/dev/b: user.name2: No such attribute or operation not permitted
> *** final list (strings, type=dev/b, nsp=user)
>
> === TYPE dev/c; NAMESPACE user
> @@ -175,13 +175,13 @@ setfattr: SCRATCH_MNT/dev/c: Operation not permitted
> setfattr: SCRATCH_MNT/dev/c: Operation not permitted
> *** set an empty value for second attribute
> setfattr: SCRATCH_MNT/dev/c: Operation not permitted
> -SCRATCH_MNT/dev/c: user.name2: Operation not permitted
> +SCRATCH_MNT/dev/c: user.name2: No such attribute or operation not permitted
> *** overwrite empty value
> setfattr: SCRATCH_MNT/dev/c: Operation not permitted
> -SCRATCH_MNT/dev/c: user.name2: Operation not permitted
> +SCRATCH_MNT/dev/c: user.name2: No such attribute or operation not permitted
> *** remove attribute
> setfattr: SCRATCH_MNT/dev/c: Operation not permitted
> -SCRATCH_MNT/dev/c: user.name2: Operation not permitted
> +SCRATCH_MNT/dev/c: user.name2: No such attribute or operation not permitted
> *** final list (strings, type=dev/c, nsp=user)
>
> === TYPE dev/p; NAMESPACE user
> @@ -200,13 +200,13 @@ setfattr: SCRATCH_MNT/dev/p: Operation not permitted
> setfattr: SCRATCH_MNT/dev/p: Operation not permitted
> *** set an empty value for second attribute
> setfattr: SCRATCH_MNT/dev/p: Operation not permitted
> -SCRATCH_MNT/dev/p: user.name2: Operation not permitted
> +SCRATCH_MNT/dev/p: user.name2: No such attribute or operation not permitted
> *** overwrite empty value
> setfattr: SCRATCH_MNT/dev/p: Operation not permitted
> -SCRATCH_MNT/dev/p: user.name2: Operation not permitted
> +SCRATCH_MNT/dev/p: user.name2: No such attribute or operation not permitted
> *** remove attribute
> setfattr: SCRATCH_MNT/dev/p: Operation not permitted
> -SCRATCH_MNT/dev/p: user.name2: Operation not permitted
> +SCRATCH_MNT/dev/p: user.name2: No such attribute or operation not permitted
> *** final list (strings, type=dev/p, nsp=user)
>
> === TYPE reg; NAMESPACE trusted
> @@ -249,7 +249,7 @@ trusted.name2
> trusted.name2=0xcafe
>
> *** remove attribute
> -SCRATCH_MNT/reg: trusted.name2: No such attribute
> +SCRATCH_MNT/reg: trusted.name2: No such attribute or operation not permitted
> *** final list (strings, type=reg, nsp=trusted)
> # file: SCRATCH_MNT/reg
> trusted.name=0xbabe
> @@ -298,7 +298,7 @@ trusted.name2
> trusted.name2=0xcafe
>
> *** remove attribute
> -SCRATCH_MNT/dir: trusted.name2: No such attribute
> +SCRATCH_MNT/dir: trusted.name2: No such attribute or operation not permitted
> *** final list (strings, type=dir, nsp=trusted)
> # file: SCRATCH_MNT/dir
> trusted.name=0xbabe
> @@ -347,7 +347,7 @@ trusted.name2
> trusted.name2=0xcafe
>
> *** remove attribute
> -SCRATCH_MNT/lnk: trusted.name2: No such attribute
> +SCRATCH_MNT/lnk: trusted.name2: No such attribute or operation not permitted
> *** final list (strings, type=lnk, nsp=trusted)
> # file: SCRATCH_MNT/lnk
> trusted.name=0xbabe
> @@ -394,7 +394,7 @@ trusted.name2
> trusted.name2=0xcafe
>
> *** remove attribute
> -SCRATCH_MNT/dev/b: trusted.name2: No such attribute
> +SCRATCH_MNT/dev/b: trusted.name2: No such attribute or operation not permitted
> *** final list (strings, type=dev/b, nsp=trusted)
> # file: SCRATCH_MNT/dev/b
> trusted.name=0xbabe
> @@ -441,7 +441,7 @@ trusted.name2
> trusted.name2=0xcafe
>
> *** remove attribute
> -SCRATCH_MNT/dev/c: trusted.name2: No such attribute
> +SCRATCH_MNT/dev/c: trusted.name2: No such attribute or operation not permitted
> *** final list (strings, type=dev/c, nsp=trusted)
> # file: SCRATCH_MNT/dev/c
> trusted.name=0xbabe
> @@ -488,7 +488,7 @@ trusted.name2
> trusted.name2=0xcafe
>
> *** remove attribute
> -SCRATCH_MNT/dev/p: trusted.name2: No such attribute
> +SCRATCH_MNT/dev/p: trusted.name2: No such attribute or operation not permitted
> *** final list (strings, type=dev/p, nsp=trusted)
> # file: SCRATCH_MNT/dev/p
> trusted.name=0xbabe
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-08-19 14:46 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-13 14:38 xfstests #62 broken on ext4 Theodore Ts'o
2011-08-13 15:57 ` Stefan Behrens
2011-08-13 20:14 ` Christoph Hellwig
2011-08-14 0:44 ` Ted Ts'o
2011-08-14 16:09 ` Christoph Hellwig
2011-08-19 14:46 ` Eric Sandeen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).