Message ID | 173706975673.1928701.14882814105946770615.stgit@frogsfrogsfrogs (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/1] fstests: test mkfs.xfs protofiles with xattr support | expand |
On Thu, Jan 16, 2025 at 03:35:04PM -0800, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@kernel.org> > > Make sure we can do protofiles with xattr support. > > Signed-off-by: "Darrick J. Wong" <djwong@kernel.org> > --- This test always fails on my side, as below (diff output): ... Attribute "rootdata" has a 5 byte value for SCRATCH_MNT/directory/test Attribute "bigdata" has a 37960 byte value for SCRATCH_MNT/directory/test Attribute "acldata" has a 5 byte value for SCRATCH_MNT/directory/test +Attribute "selinux" has a 28 byte value for SCRATCH_MNT/directory/test *** unmount FS *** done *** unmount Looks like the $SELINUX_MOUNT_OPTIONS doesn't help the mkfs protofile with xattrs. Thanks, Zorro > tests/xfs/1937 | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++++ > tests/xfs/1937.out | 102 +++++++++++++++++++++++++++++++++++++ > 2 files changed, 246 insertions(+) > create mode 100755 tests/xfs/1937 > create mode 100644 tests/xfs/1937.out > > > diff --git a/tests/xfs/1937 b/tests/xfs/1937 > new file mode 100755 > index 00000000000000..aa4143a75ef643 > --- /dev/null > +++ b/tests/xfs/1937 > @@ -0,0 +1,144 @@ > +#! /bin/bash > +# SPDX-License-Identifier: GPL-2.0 > +# Copyright (c) 2024-2025 Oracle. All Rights Reserved. > +# Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved. > +# > +# FS QA Test No. 1937 > +# > +# mkfs protofile with xattrs test > +# > +. ./common/preamble > +_begin_fstest mkfs auto quick > + > +seqfull="$seqres.full" > +rm -f $seqfull > + > +. ./common/filter > + > +_cleanup() > +{ > + echo "*** unmount" > + _scratch_unmount 2>/dev/null > + rm -f $tmp.* > + rm -f $TEST_DIR/$seq.file > +} > + > +_full() > +{ > + echo "" >>$seqfull > + echo "*** $* ***" >>$seqfull > + echo "" >>$seqfull > +} > + > +_filter_stat() > +{ > + sed ' > + /^Access:/d; > + /^Modify:/d; > + /^Change:/d; > + s/Device: *[0-9][0-9]*,[0-9][0-9]*/Device: <DEVICE>/; > + s/Inode: *[0-9][0-9]*/Inode: <INODE>/; > + s/Size: *[0-9][0-9]* *Filetype: Dir/Size: <DSIZE> Filetype: Dir/; > + ' | tr -s ' ' > +} > + > +_require_command $ATTR_PROG "attr" > +_require_scratch > + > +# mkfs cannot create a filesystem with protofiles if realtime is enabled, so > +# don't run this test if the rtinherit is anywhere in the mkfs options. > +echo "$MKFS_OPTIONS" | grep -q "rtinherit" && \ > + _notrun "Cannot mkfs with a protofile and -d rtinherit." > + > +protofile=$tmp.proto > +tempfile=$TEST_DIR/$seq.file > + > +$XFS_IO_PROG -f -c 'pwrite 64k 28k' -c 'pwrite 1280k 37960' $tempfile >> $seqres.full > +$here/src/devzero -b 2048 -n 2 -c -v 44 $tempfile.2 > + > +$ATTR_PROG -R -s rootdata -V 0test $tempfile &>> $seqres.full > +$ATTR_PROG -S -s acldata -V 1test $tempfile &>> $seqres.full > +$ATTR_PROG -s userdata -V 2test $tempfile &>> $seqres.full > +perl -e 'print "x" x 37960;' | $ATTR_PROG -s bigdata $tempfile &>> $seqres.full > + > +cat >$protofile <<EOF > +DUMMY1 > +0 0 > +: root directory > +d--777 3 1 > +: a directory > +directory d--755 3 1 > +test ---755 3 1 $tempfile > +file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_0 ---755 3 1 $tempfile > +file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_1 ---755 3 1 $tempfile > +file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_2 ---755 3 1 $tempfile > +file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_3 ---755 3 1 $tempfile > +file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_4 ---755 3 1 $tempfile > +$ > +: back in the root > +setuid -u-666 0 0 $tempfile > +setgid --g666 0 0 $tempfile > +setugid -ug666 0 0 $tempfile > +directory_setgid d-g755 3 2 > +file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_5 ---755 3 1 $tempfile > +$ > +: back in the root > +block_device b--012 3 1 161 162 > +char_device c--345 3 1 177 178 > +pipe p--670 0 0 > +symlink l--123 0 0 bigfile > +: a file we actually read > +bigfile ---666 3 0 $tempfile.2 > +: done > +$ > +EOF > + > +if [ $? -ne 0 ] > +then > + _fail "failed to create test protofile" > +fi > + > +_verify_fs() > +{ > + echo "*** create FS version $1" > + VERSION="-n version=$1" > + > + _scratch_unmount >/dev/null 2>&1 > + > + _full "mkfs" > + _scratch_mkfs_xfs $VERSION -p $protofile >>$seqfull 2>&1 > + > + echo "*** check FS" > + _check_scratch_fs > + > + echo "*** mount FS" > + _full " mount" > + _try_scratch_mount >>$seqfull 2>&1 \ > + || _fail "mount failed" > + > + $ATTR_PROG -l $SCRATCH_MNT/directory/test | \ > + grep -q 'Attribute.*has a ' || \ > + _notrun "mkfs.xfs protofile does not support xattrs" > + > + echo "*** verify FS" > + (cd $SCRATCH_MNT ; find . | LC_COLLATE=POSIX sort \ > + | grep -v ".use_space" \ > + | xargs $here/src/lstat64 | _filter_stat) > + diff -q $SCRATCH_MNT/bigfile $tempfile.2 \ > + || _fail "bigfile corrupted" > + diff -q $SCRATCH_MNT/symlink $tempfile.2 \ > + || _fail "symlink broken" > + > + $ATTR_PROG -l $SCRATCH_MNT/directory/test | _filter_scratch > + > + echo "*** unmount FS" > + _full "umount" > + _scratch_unmount >>$seqfull 2>&1 \ > + || _fail "umount failed" > +} > + > +_verify_fs 2 > + > +echo "*** done" > +status=0 > +exit > diff --git a/tests/xfs/1937.out b/tests/xfs/1937.out > new file mode 100644 > index 00000000000000..050c8318b1abca > --- /dev/null > +++ b/tests/xfs/1937.out > @@ -0,0 +1,102 @@ > +QA output created by 1937 > +Wrote 2048.00Kb (value 0x2c) > +*** create FS version 2 > +*** check FS > +*** mount FS > +*** verify FS > + File: "." > + Size: <DSIZE> Filetype: Directory > + Mode: (0777/drwxrwxrwx) Uid: (3) Gid: (1) > +Device: <DEVICE> Inode: <INODE> Links: 4 > + > + File: "./bigfile" > + Size: 2097152 Filetype: Regular File > + Mode: (0666/-rw-rw-rw-) Uid: (3) Gid: (0) > +Device: <DEVICE> Inode: <INODE> Links: 1 > + > + File: "./block_device" > + Size: 0 Filetype: Block Device > + Mode: (0012/b-----x-w-) Uid: (3) Gid: (1) > +Device: <DEVICE> Inode: <INODE> Links: 1 Device type: 161,162 > + > + File: "./char_device" > + Size: 0 Filetype: Character Device > + Mode: (0345/c-wxr--r-x) Uid: (3) Gid: (1) > +Device: <DEVICE> Inode: <INODE> Links: 1 Device type: 177,178 > + > + File: "./directory" > + Size: <DSIZE> Filetype: Directory > + Mode: (0755/drwxr-xr-x) Uid: (3) Gid: (1) > +Device: <DEVICE> Inode: <INODE> Links: 2 > + > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_0" > + Size: 1348680 Filetype: Regular File > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > +Device: <DEVICE> Inode: <INODE> Links: 1 > + > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_1" > + Size: 1348680 Filetype: Regular File > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > +Device: <DEVICE> Inode: <INODE> Links: 1 > + > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_2" > + Size: 1348680 Filetype: Regular File > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > +Device: <DEVICE> Inode: <INODE> Links: 1 > + > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_3" > + Size: 1348680 Filetype: Regular File > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > +Device: <DEVICE> Inode: <INODE> Links: 1 > + > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_4" > + Size: 1348680 Filetype: Regular File > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > +Device: <DEVICE> Inode: <INODE> Links: 1 > + > + File: "./directory/test" > + Size: 1348680 Filetype: Regular File > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > +Device: <DEVICE> Inode: <INODE> Links: 1 > + > + File: "./directory_setgid" > + Size: <DSIZE> Filetype: Directory > + Mode: (2755/drwxr-sr-x) Uid: (3) Gid: (2) > +Device: <DEVICE> Inode: <INODE> Links: 2 > + > + File: "./directory_setgid/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_5" > + Size: 1348680 Filetype: Regular File > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > +Device: <DEVICE> Inode: <INODE> Links: 1 > + > + File: "./pipe" > + Size: 0 Filetype: Fifo File > + Mode: (0670/frw-rwx---) Uid: (0) Gid: (0) > +Device: <DEVICE> Inode: <INODE> Links: 1 > + > + File: "./setgid" > + Size: 1348680 Filetype: Regular File > + Mode: (2666/-rw-rwsrw-) Uid: (0) Gid: (0) > +Device: <DEVICE> Inode: <INODE> Links: 1 > + > + File: "./setugid" > + Size: 1348680 Filetype: Regular File > + Mode: (6666/-rwsrwsrw-) Uid: (0) Gid: (0) > +Device: <DEVICE> Inode: <INODE> Links: 1 > + > + File: "./setuid" > + Size: 1348680 Filetype: Regular File > + Mode: (4666/-rwsrw-rw-) Uid: (0) Gid: (0) > +Device: <DEVICE> Inode: <INODE> Links: 1 > + > + File: "./symlink" > + Size: 7 Filetype: Symbolic Link > + Mode: (0123/l--x-w--wx) Uid: (0) Gid: (0) > +Device: <DEVICE> Inode: <INODE> Links: 1 > +Attribute "userdata" has a 5 byte value for SCRATCH_MNT/directory/test > +Attribute "rootdata" has a 5 byte value for SCRATCH_MNT/directory/test > +Attribute "bigdata" has a 37960 byte value for SCRATCH_MNT/directory/test > +Attribute "acldata" has a 5 byte value for SCRATCH_MNT/directory/test > +*** unmount FS > +*** done > +*** unmount >
On Sun, Mar 02, 2025 at 09:15:44PM +0800, Zorro Lang wrote: > On Thu, Jan 16, 2025 at 03:35:04PM -0800, Darrick J. Wong wrote: > > From: Darrick J. Wong <djwong@kernel.org> > > > > Make sure we can do protofiles with xattr support. > > > > Signed-off-by: "Darrick J. Wong" <djwong@kernel.org> > > --- > > This test always fails on my side, as below (diff output): > > ... > Attribute "rootdata" has a 5 byte value for SCRATCH_MNT/directory/test > Attribute "bigdata" has a 37960 byte value for SCRATCH_MNT/directory/test > Attribute "acldata" has a 5 byte value for SCRATCH_MNT/directory/test > +Attribute "selinux" has a 28 byte value for SCRATCH_MNT/directory/test > *** unmount FS > *** done > *** unmount > > Looks like the $SELINUX_MOUNT_OPTIONS doesn't help the mkfs protofile > with xattrs. Oops. Ok then, I'll filter them out below... > Thanks, > Zorro > > > > tests/xfs/1937 | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++++ > > tests/xfs/1937.out | 102 +++++++++++++++++++++++++++++++++++++ > > 2 files changed, 246 insertions(+) > > create mode 100755 tests/xfs/1937 > > create mode 100644 tests/xfs/1937.out > > > > > > diff --git a/tests/xfs/1937 b/tests/xfs/1937 > > new file mode 100755 > > index 00000000000000..aa4143a75ef643 > > --- /dev/null > > +++ b/tests/xfs/1937 > > @@ -0,0 +1,144 @@ > > +#! /bin/bash > > +# SPDX-License-Identifier: GPL-2.0 > > +# Copyright (c) 2024-2025 Oracle. All Rights Reserved. > > +# Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved. > > +# > > +# FS QA Test No. 1937 > > +# > > +# mkfs protofile with xattrs test > > +# > > +. ./common/preamble > > +_begin_fstest mkfs auto quick > > + > > +seqfull="$seqres.full" > > +rm -f $seqfull > > + > > +. ./common/filter > > + > > +_cleanup() > > +{ > > + echo "*** unmount" > > + _scratch_unmount 2>/dev/null > > + rm -f $tmp.* > > + rm -f $TEST_DIR/$seq.file > > +} > > + > > +_full() > > +{ > > + echo "" >>$seqfull > > + echo "*** $* ***" >>$seqfull > > + echo "" >>$seqfull > > +} > > + > > +_filter_stat() > > +{ > > + sed ' > > + /^Access:/d; > > + /^Modify:/d; > > + /^Change:/d; > > + s/Device: *[0-9][0-9]*,[0-9][0-9]*/Device: <DEVICE>/; > > + s/Inode: *[0-9][0-9]*/Inode: <INODE>/; > > + s/Size: *[0-9][0-9]* *Filetype: Dir/Size: <DSIZE> Filetype: Dir/; > > + ' | tr -s ' ' > > +} > > + > > +_require_command $ATTR_PROG "attr" > > +_require_scratch > > + > > +# mkfs cannot create a filesystem with protofiles if realtime is enabled, so > > +# don't run this test if the rtinherit is anywhere in the mkfs options. > > +echo "$MKFS_OPTIONS" | grep -q "rtinherit" && \ > > + _notrun "Cannot mkfs with a protofile and -d rtinherit." > > + > > +protofile=$tmp.proto > > +tempfile=$TEST_DIR/$seq.file > > + > > +$XFS_IO_PROG -f -c 'pwrite 64k 28k' -c 'pwrite 1280k 37960' $tempfile >> $seqres.full > > +$here/src/devzero -b 2048 -n 2 -c -v 44 $tempfile.2 > > + > > +$ATTR_PROG -R -s rootdata -V 0test $tempfile &>> $seqres.full > > +$ATTR_PROG -S -s acldata -V 1test $tempfile &>> $seqres.full > > +$ATTR_PROG -s userdata -V 2test $tempfile &>> $seqres.full > > +perl -e 'print "x" x 37960;' | $ATTR_PROG -s bigdata $tempfile &>> $seqres.full > > + > > +cat >$protofile <<EOF > > +DUMMY1 > > +0 0 > > +: root directory > > +d--777 3 1 > > +: a directory > > +directory d--755 3 1 > > +test ---755 3 1 $tempfile > > +file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_0 ---755 3 1 $tempfile > > +file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_1 ---755 3 1 $tempfile > > +file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_2 ---755 3 1 $tempfile > > +file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_3 ---755 3 1 $tempfile > > +file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_4 ---755 3 1 $tempfile > > +$ > > +: back in the root > > +setuid -u-666 0 0 $tempfile > > +setgid --g666 0 0 $tempfile > > +setugid -ug666 0 0 $tempfile > > +directory_setgid d-g755 3 2 > > +file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_5 ---755 3 1 $tempfile > > +$ > > +: back in the root > > +block_device b--012 3 1 161 162 > > +char_device c--345 3 1 177 178 > > +pipe p--670 0 0 > > +symlink l--123 0 0 bigfile > > +: a file we actually read > > +bigfile ---666 3 0 $tempfile.2 > > +: done > > +$ > > +EOF > > + > > +if [ $? -ne 0 ] > > +then > > + _fail "failed to create test protofile" > > +fi > > + > > +_verify_fs() > > +{ > > + echo "*** create FS version $1" > > + VERSION="-n version=$1" > > + > > + _scratch_unmount >/dev/null 2>&1 > > + > > + _full "mkfs" > > + _scratch_mkfs_xfs $VERSION -p $protofile >>$seqfull 2>&1 > > + > > + echo "*** check FS" > > + _check_scratch_fs > > + > > + echo "*** mount FS" > > + _full " mount" > > + _try_scratch_mount >>$seqfull 2>&1 \ > > + || _fail "mount failed" > > + > > + $ATTR_PROG -l $SCRATCH_MNT/directory/test | \ > > + grep -q 'Attribute.*has a ' || \ > > + _notrun "mkfs.xfs protofile does not support xattrs" > > + > > + echo "*** verify FS" > > + (cd $SCRATCH_MNT ; find . | LC_COLLATE=POSIX sort \ > > + | grep -v ".use_space" \ > > + | xargs $here/src/lstat64 | _filter_stat) > > + diff -q $SCRATCH_MNT/bigfile $tempfile.2 \ > > + || _fail "bigfile corrupted" > > + diff -q $SCRATCH_MNT/symlink $tempfile.2 \ > > + || _fail "symlink broken" > > + > > + $ATTR_PROG -l $SCRATCH_MNT/directory/test | _filter_scratch ...so they don't spill into the golden output. As this is already in patches-in-queue, do you want me to send a fixpatch on top of that? --D > > + > > + echo "*** unmount FS" > > + _full "umount" > > + _scratch_unmount >>$seqfull 2>&1 \ > > + || _fail "umount failed" > > +} > > + > > +_verify_fs 2 > > + > > +echo "*** done" > > +status=0 > > +exit > > diff --git a/tests/xfs/1937.out b/tests/xfs/1937.out > > new file mode 100644 > > index 00000000000000..050c8318b1abca > > --- /dev/null > > +++ b/tests/xfs/1937.out > > @@ -0,0 +1,102 @@ > > +QA output created by 1937 > > +Wrote 2048.00Kb (value 0x2c) > > +*** create FS version 2 > > +*** check FS > > +*** mount FS > > +*** verify FS > > + File: "." > > + Size: <DSIZE> Filetype: Directory > > + Mode: (0777/drwxrwxrwx) Uid: (3) Gid: (1) > > +Device: <DEVICE> Inode: <INODE> Links: 4 > > + > > + File: "./bigfile" > > + Size: 2097152 Filetype: Regular File > > + Mode: (0666/-rw-rw-rw-) Uid: (3) Gid: (0) > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > + > > + File: "./block_device" > > + Size: 0 Filetype: Block Device > > + Mode: (0012/b-----x-w-) Uid: (3) Gid: (1) > > +Device: <DEVICE> Inode: <INODE> Links: 1 Device type: 161,162 > > + > > + File: "./char_device" > > + Size: 0 Filetype: Character Device > > + Mode: (0345/c-wxr--r-x) Uid: (3) Gid: (1) > > +Device: <DEVICE> Inode: <INODE> Links: 1 Device type: 177,178 > > + > > + File: "./directory" > > + Size: <DSIZE> Filetype: Directory > > + Mode: (0755/drwxr-xr-x) Uid: (3) Gid: (1) > > +Device: <DEVICE> Inode: <INODE> Links: 2 > > + > > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_0" > > + Size: 1348680 Filetype: Regular File > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > + > > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_1" > > + Size: 1348680 Filetype: Regular File > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > + > > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_2" > > + Size: 1348680 Filetype: Regular File > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > + > > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_3" > > + Size: 1348680 Filetype: Regular File > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > + > > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_4" > > + Size: 1348680 Filetype: Regular File > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > + > > + File: "./directory/test" > > + Size: 1348680 Filetype: Regular File > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > + > > + File: "./directory_setgid" > > + Size: <DSIZE> Filetype: Directory > > + Mode: (2755/drwxr-sr-x) Uid: (3) Gid: (2) > > +Device: <DEVICE> Inode: <INODE> Links: 2 > > + > > + File: "./directory_setgid/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_5" > > + Size: 1348680 Filetype: Regular File > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > + > > + File: "./pipe" > > + Size: 0 Filetype: Fifo File > > + Mode: (0670/frw-rwx---) Uid: (0) Gid: (0) > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > + > > + File: "./setgid" > > + Size: 1348680 Filetype: Regular File > > + Mode: (2666/-rw-rwsrw-) Uid: (0) Gid: (0) > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > + > > + File: "./setugid" > > + Size: 1348680 Filetype: Regular File > > + Mode: (6666/-rwsrwsrw-) Uid: (0) Gid: (0) > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > + > > + File: "./setuid" > > + Size: 1348680 Filetype: Regular File > > + Mode: (4666/-rwsrw-rw-) Uid: (0) Gid: (0) > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > + > > + File: "./symlink" > > + Size: 7 Filetype: Symbolic Link > > + Mode: (0123/l--x-w--wx) Uid: (0) Gid: (0) > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > +Attribute "userdata" has a 5 byte value for SCRATCH_MNT/directory/test > > +Attribute "rootdata" has a 5 byte value for SCRATCH_MNT/directory/test > > +Attribute "bigdata" has a 37960 byte value for SCRATCH_MNT/directory/test > > +Attribute "acldata" has a 5 byte value for SCRATCH_MNT/directory/test > > +*** unmount FS > > +*** done > > +*** unmount > > >
On Tue, Mar 04, 2025 at 09:42:42AM -0800, Darrick J. Wong wrote: > On Sun, Mar 02, 2025 at 09:15:44PM +0800, Zorro Lang wrote: > > On Thu, Jan 16, 2025 at 03:35:04PM -0800, Darrick J. Wong wrote: > > > From: Darrick J. Wong <djwong@kernel.org> > > > > > > Make sure we can do protofiles with xattr support. > > > > > > Signed-off-by: "Darrick J. Wong" <djwong@kernel.org> > > > --- > > > > This test always fails on my side, as below (diff output): > > > > ... > > Attribute "rootdata" has a 5 byte value for SCRATCH_MNT/directory/test > > Attribute "bigdata" has a 37960 byte value for SCRATCH_MNT/directory/test > > Attribute "acldata" has a 5 byte value for SCRATCH_MNT/directory/test > > +Attribute "selinux" has a 28 byte value for SCRATCH_MNT/directory/test > > *** unmount FS > > *** done > > *** unmount > > > > Looks like the $SELINUX_MOUNT_OPTIONS doesn't help the mkfs protofile > > with xattrs. > > Oops. Ok then, I'll filter them out below... > > > Thanks, > > Zorro > > > > > > > tests/xfs/1937 | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++++ > > > tests/xfs/1937.out | 102 +++++++++++++++++++++++++++++++++++++ > > > 2 files changed, 246 insertions(+) > > > create mode 100755 tests/xfs/1937 > > > create mode 100644 tests/xfs/1937.out > > > [snip] > > > + echo "*** verify FS" > > > + (cd $SCRATCH_MNT ; find . | LC_COLLATE=POSIX sort \ > > > + | grep -v ".use_space" \ > > > + | xargs $here/src/lstat64 | _filter_stat) > > > + diff -q $SCRATCH_MNT/bigfile $tempfile.2 \ > > > + || _fail "bigfile corrupted" > > > + diff -q $SCRATCH_MNT/symlink $tempfile.2 \ > > > + || _fail "symlink broken" > > > + > > > + $ATTR_PROG -l $SCRATCH_MNT/directory/test | _filter_scratch > > ...so they don't spill into the golden output. As this is already in > patches-in-queue, do you want me to send a fixpatch on top of that? If you just need a simple filter, I think you can tell me what do you want to change, I can amend the commit simply. Or if you need to change more, only re-send this patch is good to me :) Thanks, Zorro > > --D > > > > + > > > + echo "*** unmount FS" > > > + _full "umount" > > > + _scratch_unmount >>$seqfull 2>&1 \ > > > + || _fail "umount failed" > > > +} > > > + > > > +_verify_fs 2 > > > + > > > +echo "*** done" > > > +status=0 > > > +exit > > > diff --git a/tests/xfs/1937.out b/tests/xfs/1937.out > > > new file mode 100644 > > > index 00000000000000..050c8318b1abca > > > --- /dev/null > > > +++ b/tests/xfs/1937.out > > > @@ -0,0 +1,102 @@ > > > +QA output created by 1937 > > > +Wrote 2048.00Kb (value 0x2c) > > > +*** create FS version 2 > > > +*** check FS > > > +*** mount FS > > > +*** verify FS > > > + File: "." > > > + Size: <DSIZE> Filetype: Directory > > > + Mode: (0777/drwxrwxrwx) Uid: (3) Gid: (1) > > > +Device: <DEVICE> Inode: <INODE> Links: 4 > > > + > > > + File: "./bigfile" > > > + Size: 2097152 Filetype: Regular File > > > + Mode: (0666/-rw-rw-rw-) Uid: (3) Gid: (0) > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > + > > > + File: "./block_device" > > > + Size: 0 Filetype: Block Device > > > + Mode: (0012/b-----x-w-) Uid: (3) Gid: (1) > > > +Device: <DEVICE> Inode: <INODE> Links: 1 Device type: 161,162 > > > + > > > + File: "./char_device" > > > + Size: 0 Filetype: Character Device > > > + Mode: (0345/c-wxr--r-x) Uid: (3) Gid: (1) > > > +Device: <DEVICE> Inode: <INODE> Links: 1 Device type: 177,178 > > > + > > > + File: "./directory" > > > + Size: <DSIZE> Filetype: Directory > > > + Mode: (0755/drwxr-xr-x) Uid: (3) Gid: (1) > > > +Device: <DEVICE> Inode: <INODE> Links: 2 > > > + > > > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_0" > > > + Size: 1348680 Filetype: Regular File > > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > + > > > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_1" > > > + Size: 1348680 Filetype: Regular File > > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > + > > > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_2" > > > + Size: 1348680 Filetype: Regular File > > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > + > > > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_3" > > > + Size: 1348680 Filetype: Regular File > > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > + > > > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_4" > > > + Size: 1348680 Filetype: Regular File > > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > + > > > + File: "./directory/test" > > > + Size: 1348680 Filetype: Regular File > > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > + > > > + File: "./directory_setgid" > > > + Size: <DSIZE> Filetype: Directory > > > + Mode: (2755/drwxr-sr-x) Uid: (3) Gid: (2) > > > +Device: <DEVICE> Inode: <INODE> Links: 2 > > > + > > > + File: "./directory_setgid/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_5" > > > + Size: 1348680 Filetype: Regular File > > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > + > > > + File: "./pipe" > > > + Size: 0 Filetype: Fifo File > > > + Mode: (0670/frw-rwx---) Uid: (0) Gid: (0) > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > + > > > + File: "./setgid" > > > + Size: 1348680 Filetype: Regular File > > > + Mode: (2666/-rw-rwsrw-) Uid: (0) Gid: (0) > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > + > > > + File: "./setugid" > > > + Size: 1348680 Filetype: Regular File > > > + Mode: (6666/-rwsrwsrw-) Uid: (0) Gid: (0) > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > + > > > + File: "./setuid" > > > + Size: 1348680 Filetype: Regular File > > > + Mode: (4666/-rwsrw-rw-) Uid: (0) Gid: (0) > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > + > > > + File: "./symlink" > > > + Size: 7 Filetype: Symbolic Link > > > + Mode: (0123/l--x-w--wx) Uid: (0) Gid: (0) > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > +Attribute "userdata" has a 5 byte value for SCRATCH_MNT/directory/test > > > +Attribute "rootdata" has a 5 byte value for SCRATCH_MNT/directory/test > > > +Attribute "bigdata" has a 37960 byte value for SCRATCH_MNT/directory/test > > > +Attribute "acldata" has a 5 byte value for SCRATCH_MNT/directory/test > > > +*** unmount FS > > > +*** done > > > +*** unmount > > > > > >
On Wed, Mar 05, 2025 at 02:00:40AM +0800, Zorro Lang wrote: > On Tue, Mar 04, 2025 at 09:42:42AM -0800, Darrick J. Wong wrote: > > On Sun, Mar 02, 2025 at 09:15:44PM +0800, Zorro Lang wrote: > > > On Thu, Jan 16, 2025 at 03:35:04PM -0800, Darrick J. Wong wrote: > > > > From: Darrick J. Wong <djwong@kernel.org> > > > > > > > > Make sure we can do protofiles with xattr support. > > > > > > > > Signed-off-by: "Darrick J. Wong" <djwong@kernel.org> > > > > --- > > > > > > This test always fails on my side, as below (diff output): > > > > > > ... > > > Attribute "rootdata" has a 5 byte value for SCRATCH_MNT/directory/test > > > Attribute "bigdata" has a 37960 byte value for SCRATCH_MNT/directory/test > > > Attribute "acldata" has a 5 byte value for SCRATCH_MNT/directory/test > > > +Attribute "selinux" has a 28 byte value for SCRATCH_MNT/directory/test > > > *** unmount FS > > > *** done > > > *** unmount > > > > > > Looks like the $SELINUX_MOUNT_OPTIONS doesn't help the mkfs protofile > > > with xattrs. > > > > Oops. Ok then, I'll filter them out below... > > > > > Thanks, > > > Zorro > > > > > > > > > > tests/xfs/1937 | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++++ > > > > tests/xfs/1937.out | 102 +++++++++++++++++++++++++++++++++++++ > > > > 2 files changed, 246 insertions(+) > > > > create mode 100755 tests/xfs/1937 > > > > create mode 100644 tests/xfs/1937.out > > > > > > [snip] > > > > > + echo "*** verify FS" > > > > + (cd $SCRATCH_MNT ; find . | LC_COLLATE=POSIX sort \ > > > > + | grep -v ".use_space" \ > > > > + | xargs $here/src/lstat64 | _filter_stat) > > > > + diff -q $SCRATCH_MNT/bigfile $tempfile.2 \ > > > > + || _fail "bigfile corrupted" > > > > + diff -q $SCRATCH_MNT/symlink $tempfile.2 \ > > > > + || _fail "symlink broken" > > > > + > > > > + $ATTR_PROG -l $SCRATCH_MNT/directory/test | _filter_scratch > > > > ...so they don't spill into the golden output. As this is already in > > patches-in-queue, do you want me to send a fixpatch on top of that? > > If you just need a simple filter, I think you can tell me what do you > want to change, I can amend the commit simply. Or if you need to change > more, only re-send this patch is good to me :) I /think/ changing the above line to this will fix it: $ATTR_PROG -l $SCRATCH_MNT/directory/test | \ sed -e '/Attribute..selinux..has/d' | \ _filter_scratch --D > Thanks, > Zorro > > > > > --D > > > > > > + > > > > + echo "*** unmount FS" > > > > + _full "umount" > > > > + _scratch_unmount >>$seqfull 2>&1 \ > > > > + || _fail "umount failed" > > > > +} > > > > + > > > > +_verify_fs 2 > > > > + > > > > +echo "*** done" > > > > +status=0 > > > > +exit > > > > diff --git a/tests/xfs/1937.out b/tests/xfs/1937.out > > > > new file mode 100644 > > > > index 00000000000000..050c8318b1abca > > > > --- /dev/null > > > > +++ b/tests/xfs/1937.out > > > > @@ -0,0 +1,102 @@ > > > > +QA output created by 1937 > > > > +Wrote 2048.00Kb (value 0x2c) > > > > +*** create FS version 2 > > > > +*** check FS > > > > +*** mount FS > > > > +*** verify FS > > > > + File: "." > > > > + Size: <DSIZE> Filetype: Directory > > > > + Mode: (0777/drwxrwxrwx) Uid: (3) Gid: (1) > > > > +Device: <DEVICE> Inode: <INODE> Links: 4 > > > > + > > > > + File: "./bigfile" > > > > + Size: 2097152 Filetype: Regular File > > > > + Mode: (0666/-rw-rw-rw-) Uid: (3) Gid: (0) > > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > > + > > > > + File: "./block_device" > > > > + Size: 0 Filetype: Block Device > > > > + Mode: (0012/b-----x-w-) Uid: (3) Gid: (1) > > > > +Device: <DEVICE> Inode: <INODE> Links: 1 Device type: 161,162 > > > > + > > > > + File: "./char_device" > > > > + Size: 0 Filetype: Character Device > > > > + Mode: (0345/c-wxr--r-x) Uid: (3) Gid: (1) > > > > +Device: <DEVICE> Inode: <INODE> Links: 1 Device type: 177,178 > > > > + > > > > + File: "./directory" > > > > + Size: <DSIZE> Filetype: Directory > > > > + Mode: (0755/drwxr-xr-x) Uid: (3) Gid: (1) > > > > +Device: <DEVICE> Inode: <INODE> Links: 2 > > > > + > > > > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_0" > > > > + Size: 1348680 Filetype: Regular File > > > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > > + > > > > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_1" > > > > + Size: 1348680 Filetype: Regular File > > > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > > + > > > > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_2" > > > > + Size: 1348680 Filetype: Regular File > > > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > > + > > > > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_3" > > > > + Size: 1348680 Filetype: Regular File > > > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > > + > > > > + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_4" > > > > + Size: 1348680 Filetype: Regular File > > > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > > + > > > > + File: "./directory/test" > > > > + Size: 1348680 Filetype: Regular File > > > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > > + > > > > + File: "./directory_setgid" > > > > + Size: <DSIZE> Filetype: Directory > > > > + Mode: (2755/drwxr-sr-x) Uid: (3) Gid: (2) > > > > +Device: <DEVICE> Inode: <INODE> Links: 2 > > > > + > > > > + File: "./directory_setgid/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_5" > > > > + Size: 1348680 Filetype: Regular File > > > > + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) > > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > > + > > > > + File: "./pipe" > > > > + Size: 0 Filetype: Fifo File > > > > + Mode: (0670/frw-rwx---) Uid: (0) Gid: (0) > > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > > + > > > > + File: "./setgid" > > > > + Size: 1348680 Filetype: Regular File > > > > + Mode: (2666/-rw-rwsrw-) Uid: (0) Gid: (0) > > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > > + > > > > + File: "./setugid" > > > > + Size: 1348680 Filetype: Regular File > > > > + Mode: (6666/-rwsrwsrw-) Uid: (0) Gid: (0) > > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > > + > > > > + File: "./setuid" > > > > + Size: 1348680 Filetype: Regular File > > > > + Mode: (4666/-rwsrw-rw-) Uid: (0) Gid: (0) > > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > > + > > > > + File: "./symlink" > > > > + Size: 7 Filetype: Symbolic Link > > > > + Mode: (0123/l--x-w--wx) Uid: (0) Gid: (0) > > > > +Device: <DEVICE> Inode: <INODE> Links: 1 > > > > +Attribute "userdata" has a 5 byte value for SCRATCH_MNT/directory/test > > > > +Attribute "rootdata" has a 5 byte value for SCRATCH_MNT/directory/test > > > > +Attribute "bigdata" has a 37960 byte value for SCRATCH_MNT/directory/test > > > > +Attribute "acldata" has a 5 byte value for SCRATCH_MNT/directory/test > > > > +*** unmount FS > > > > +*** done > > > > +*** unmount > > > > > > > > > > >
diff --git a/tests/xfs/1937 b/tests/xfs/1937 new file mode 100755 index 00000000000000..aa4143a75ef643 --- /dev/null +++ b/tests/xfs/1937 @@ -0,0 +1,144 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2024-2025 Oracle. All Rights Reserved. +# Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved. +# +# FS QA Test No. 1937 +# +# mkfs protofile with xattrs test +# +. ./common/preamble +_begin_fstest mkfs auto quick + +seqfull="$seqres.full" +rm -f $seqfull + +. ./common/filter + +_cleanup() +{ + echo "*** unmount" + _scratch_unmount 2>/dev/null + rm -f $tmp.* + rm -f $TEST_DIR/$seq.file +} + +_full() +{ + echo "" >>$seqfull + echo "*** $* ***" >>$seqfull + echo "" >>$seqfull +} + +_filter_stat() +{ + sed ' + /^Access:/d; + /^Modify:/d; + /^Change:/d; + s/Device: *[0-9][0-9]*,[0-9][0-9]*/Device: <DEVICE>/; + s/Inode: *[0-9][0-9]*/Inode: <INODE>/; + s/Size: *[0-9][0-9]* *Filetype: Dir/Size: <DSIZE> Filetype: Dir/; + ' | tr -s ' ' +} + +_require_command $ATTR_PROG "attr" +_require_scratch + +# mkfs cannot create a filesystem with protofiles if realtime is enabled, so +# don't run this test if the rtinherit is anywhere in the mkfs options. +echo "$MKFS_OPTIONS" | grep -q "rtinherit" && \ + _notrun "Cannot mkfs with a protofile and -d rtinherit." + +protofile=$tmp.proto +tempfile=$TEST_DIR/$seq.file + +$XFS_IO_PROG -f -c 'pwrite 64k 28k' -c 'pwrite 1280k 37960' $tempfile >> $seqres.full +$here/src/devzero -b 2048 -n 2 -c -v 44 $tempfile.2 + +$ATTR_PROG -R -s rootdata -V 0test $tempfile &>> $seqres.full +$ATTR_PROG -S -s acldata -V 1test $tempfile &>> $seqres.full +$ATTR_PROG -s userdata -V 2test $tempfile &>> $seqres.full +perl -e 'print "x" x 37960;' | $ATTR_PROG -s bigdata $tempfile &>> $seqres.full + +cat >$protofile <<EOF +DUMMY1 +0 0 +: root directory +d--777 3 1 +: a directory +directory d--755 3 1 +test ---755 3 1 $tempfile +file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_0 ---755 3 1 $tempfile +file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_1 ---755 3 1 $tempfile +file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_2 ---755 3 1 $tempfile +file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_3 ---755 3 1 $tempfile +file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_4 ---755 3 1 $tempfile +$ +: back in the root +setuid -u-666 0 0 $tempfile +setgid --g666 0 0 $tempfile +setugid -ug666 0 0 $tempfile +directory_setgid d-g755 3 2 +file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_5 ---755 3 1 $tempfile +$ +: back in the root +block_device b--012 3 1 161 162 +char_device c--345 3 1 177 178 +pipe p--670 0 0 +symlink l--123 0 0 bigfile +: a file we actually read +bigfile ---666 3 0 $tempfile.2 +: done +$ +EOF + +if [ $? -ne 0 ] +then + _fail "failed to create test protofile" +fi + +_verify_fs() +{ + echo "*** create FS version $1" + VERSION="-n version=$1" + + _scratch_unmount >/dev/null 2>&1 + + _full "mkfs" + _scratch_mkfs_xfs $VERSION -p $protofile >>$seqfull 2>&1 + + echo "*** check FS" + _check_scratch_fs + + echo "*** mount FS" + _full " mount" + _try_scratch_mount >>$seqfull 2>&1 \ + || _fail "mount failed" + + $ATTR_PROG -l $SCRATCH_MNT/directory/test | \ + grep -q 'Attribute.*has a ' || \ + _notrun "mkfs.xfs protofile does not support xattrs" + + echo "*** verify FS" + (cd $SCRATCH_MNT ; find . | LC_COLLATE=POSIX sort \ + | grep -v ".use_space" \ + | xargs $here/src/lstat64 | _filter_stat) + diff -q $SCRATCH_MNT/bigfile $tempfile.2 \ + || _fail "bigfile corrupted" + diff -q $SCRATCH_MNT/symlink $tempfile.2 \ + || _fail "symlink broken" + + $ATTR_PROG -l $SCRATCH_MNT/directory/test | _filter_scratch + + echo "*** unmount FS" + _full "umount" + _scratch_unmount >>$seqfull 2>&1 \ + || _fail "umount failed" +} + +_verify_fs 2 + +echo "*** done" +status=0 +exit diff --git a/tests/xfs/1937.out b/tests/xfs/1937.out new file mode 100644 index 00000000000000..050c8318b1abca --- /dev/null +++ b/tests/xfs/1937.out @@ -0,0 +1,102 @@ +QA output created by 1937 +Wrote 2048.00Kb (value 0x2c) +*** create FS version 2 +*** check FS +*** mount FS +*** verify FS + File: "." + Size: <DSIZE> Filetype: Directory + Mode: (0777/drwxrwxrwx) Uid: (3) Gid: (1) +Device: <DEVICE> Inode: <INODE> Links: 4 + + File: "./bigfile" + Size: 2097152 Filetype: Regular File + Mode: (0666/-rw-rw-rw-) Uid: (3) Gid: (0) +Device: <DEVICE> Inode: <INODE> Links: 1 + + File: "./block_device" + Size: 0 Filetype: Block Device + Mode: (0012/b-----x-w-) Uid: (3) Gid: (1) +Device: <DEVICE> Inode: <INODE> Links: 1 Device type: 161,162 + + File: "./char_device" + Size: 0 Filetype: Character Device + Mode: (0345/c-wxr--r-x) Uid: (3) Gid: (1) +Device: <DEVICE> Inode: <INODE> Links: 1 Device type: 177,178 + + File: "./directory" + Size: <DSIZE> Filetype: Directory + Mode: (0755/drwxr-xr-x) Uid: (3) Gid: (1) +Device: <DEVICE> Inode: <INODE> Links: 2 + + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_0" + Size: 1348680 Filetype: Regular File + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) +Device: <DEVICE> Inode: <INODE> Links: 1 + + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_1" + Size: 1348680 Filetype: Regular File + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) +Device: <DEVICE> Inode: <INODE> Links: 1 + + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_2" + Size: 1348680 Filetype: Regular File + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) +Device: <DEVICE> Inode: <INODE> Links: 1 + + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_3" + Size: 1348680 Filetype: Regular File + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) +Device: <DEVICE> Inode: <INODE> Links: 1 + + File: "./directory/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_4" + Size: 1348680 Filetype: Regular File + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) +Device: <DEVICE> Inode: <INODE> Links: 1 + + File: "./directory/test" + Size: 1348680 Filetype: Regular File + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) +Device: <DEVICE> Inode: <INODE> Links: 1 + + File: "./directory_setgid" + Size: <DSIZE> Filetype: Directory + Mode: (2755/drwxr-sr-x) Uid: (3) Gid: (2) +Device: <DEVICE> Inode: <INODE> Links: 2 + + File: "./directory_setgid/file_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_5" + Size: 1348680 Filetype: Regular File + Mode: (0755/-rwxr-xr-x) Uid: (3) Gid: (1) +Device: <DEVICE> Inode: <INODE> Links: 1 + + File: "./pipe" + Size: 0 Filetype: Fifo File + Mode: (0670/frw-rwx---) Uid: (0) Gid: (0) +Device: <DEVICE> Inode: <INODE> Links: 1 + + File: "./setgid" + Size: 1348680 Filetype: Regular File + Mode: (2666/-rw-rwsrw-) Uid: (0) Gid: (0) +Device: <DEVICE> Inode: <INODE> Links: 1 + + File: "./setugid" + Size: 1348680 Filetype: Regular File + Mode: (6666/-rwsrwsrw-) Uid: (0) Gid: (0) +Device: <DEVICE> Inode: <INODE> Links: 1 + + File: "./setuid" + Size: 1348680 Filetype: Regular File + Mode: (4666/-rwsrw-rw-) Uid: (0) Gid: (0) +Device: <DEVICE> Inode: <INODE> Links: 1 + + File: "./symlink" + Size: 7 Filetype: Symbolic Link + Mode: (0123/l--x-w--wx) Uid: (0) Gid: (0) +Device: <DEVICE> Inode: <INODE> Links: 1 +Attribute "userdata" has a 5 byte value for SCRATCH_MNT/directory/test +Attribute "rootdata" has a 5 byte value for SCRATCH_MNT/directory/test +Attribute "bigdata" has a 37960 byte value for SCRATCH_MNT/directory/test +Attribute "acldata" has a 5 byte value for SCRATCH_MNT/directory/test +*** unmount FS +*** done +*** unmount