From: Eric Sandeen <sandeen@sandeen.net>
To: Christoph Hellwig <hch@infradead.org>
Cc: linux-ext4@vger.kernel.org, "Theodore Ts'o" <tytso@mit.edu>,
Stefan Behrens <sbehrens@giantdisaster.de>,
xfs@oss.sgi.com
Subject: Re: xfstests #62 broken on ext4
Date: Fri, 19 Aug 2011 09:46:30 -0500 [thread overview]
Message-ID: <4E4E7746.9030505@sandeen.net> (raw)
In-Reply-To: <20110813201419.GA6442@infradead.org>
> 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
prev parent reply other threads:[~2011-08-19 14:46 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-13 14:38 xfstests #62 broken on ext4 Theodore Ts'o
2011-08-13 14:38 ` Theodore Ts'o
2011-08-13 15:57 ` Stefan Behrens
2011-08-13 15:57 ` Stefan Behrens
2011-08-13 20:14 ` Christoph Hellwig
2011-08-13 20:14 ` Christoph Hellwig
2011-08-14 0:44 ` Ted Ts'o
2011-08-14 0:44 ` Ted Ts'o
2011-08-14 16:09 ` Christoph Hellwig
2011-08-14 16:09 ` Christoph Hellwig
2011-08-19 14:46 ` Eric Sandeen [this message]
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=4E4E7746.9030505@sandeen.net \
--to=sandeen@sandeen.net \
--cc=hch@infradead.org \
--cc=linux-ext4@vger.kernel.org \
--cc=sbehrens@giantdisaster.de \
--cc=tytso@mit.edu \
--cc=xfs@oss.sgi.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.