* [PATCH] generic/050: fix xfsquota configuration failures
@ 2019-11-27 4:15 Darrick J. Wong
2019-11-27 12:06 ` Jan Kara
0 siblings, 1 reply; 3+ messages in thread
From: Darrick J. Wong @ 2019-11-27 4:15 UTC (permalink / raw)
To: Eryu Guan; +Cc: fstests, xfs, Jan Kara
From: Darrick J. Wong <darrick.wong@oracle.com>
The new 'xfsquota' configuration for generic/050 doesn't filter out
SCRATCH_MNT properly and seems to be missing an error message in the
golden output. Fix both of these problems.
Fixes: e088479871 ("generic/050: Handle xfs quota special case with different output")
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
---
tests/generic/050 | 6 +++---
tests/generic/050.out.xfsquota | 5 +++--
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/tests/generic/050 b/tests/generic/050
index cf2b9381..6f536aff 100755
--- a/tests/generic/050
+++ b/tests/generic/050
@@ -58,7 +58,7 @@ blockdev --setro $SCRATCH_DEV
# Mount it, and make sure we can't write to it, and we can unmount it again
#
echo "mounting read-only block device:"
-_try_scratch_mount 2>&1 | _filter_ro_mount
+_try_scratch_mount 2>&1 | _filter_ro_mount | _filter_scratch
echo "touching file on read-only filesystem (should fail)"
touch $SCRATCH_MNT/foo 2>&1 | _filter_scratch
@@ -92,7 +92,7 @@ blockdev --setro $SCRATCH_DEV
# -o norecovery is used.
#
echo "mounting filesystem that needs recovery on a read-only device:"
-_try_scratch_mount 2>&1 | _filter_ro_mount
+_try_scratch_mount 2>&1 | _filter_ro_mount | _filter_scratch
echo "unmounting read-only filesystem"
_scratch_unmount 2>&1 | _filter_scratch | _filter_ending_dot
@@ -103,7 +103,7 @@ _scratch_unmount 2>&1 | _filter_scratch | _filter_ending_dot
# data recovery hack.
#
echo "mounting filesystem with -o norecovery on a read-only device:"
-_try_scratch_mount -o norecovery 2>&1 | _filter_ro_mount
+_try_scratch_mount -o norecovery 2>&1 | _filter_ro_mount | _filter_scratch
echo "unmounting read-only filesystem"
_scratch_unmount 2>&1 | _filter_scratch | _filter_ending_dot
diff --git a/tests/generic/050.out.xfsquota b/tests/generic/050.out.xfsquota
index f204bd2f..10e395da 100644
--- a/tests/generic/050.out.xfsquota
+++ b/tests/generic/050.out.xfsquota
@@ -1,8 +1,9 @@
QA output created by 050
setting device read-only
mounting read-only block device:
-mount: /mnt-scratch: permission denied
+mount: SCRATCH_MNT: permission denied
touching file on read-only filesystem (should fail)
+touch: cannot touch 'SCRATCH_MNT/foo': Read-only file system
unmounting read-only filesystem
umount: SCRATCH_DEV: not mounted
setting device read-write
@@ -17,7 +18,7 @@ mount: cannot mount device read-only
unmounting read-only filesystem
umount: SCRATCH_DEV: not mounted
mounting filesystem with -o norecovery on a read-only device:
-mount: /mnt-scratch: permission denied
+mount: SCRATCH_MNT: permission denied
unmounting read-only filesystem
umount: SCRATCH_DEV: not mounted
setting device read-write
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] generic/050: fix xfsquota configuration failures
2019-11-27 4:15 [PATCH] generic/050: fix xfsquota configuration failures Darrick J. Wong
@ 2019-11-27 12:06 ` Jan Kara
2019-11-27 15:41 ` Darrick J. Wong
0 siblings, 1 reply; 3+ messages in thread
From: Jan Kara @ 2019-11-27 12:06 UTC (permalink / raw)
To: Darrick J. Wong; +Cc: Eryu Guan, fstests, xfs, Jan Kara
On Tue 26-11-19 20:15:38, Darrick J. Wong wrote:
> From: Darrick J. Wong <darrick.wong@oracle.com>
>
> The new 'xfsquota' configuration for generic/050 doesn't filter out
> SCRATCH_MNT properly and seems to be missing an error message in the
> golden output. Fix both of these problems.
>
> Fixes: e088479871 ("generic/050: Handle xfs quota special case with different output")
> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Umm, I can see how I messed up the SCRATCH_MNT filtering and didn't notice
- thanks for fixing that. But the error message should not be there. The
previous mount completely failed so we end up touching file on the parent
filesystem which succeeds (well, unless the parent filesystem is read-only
as well). So to avoid this obscure behavior, we should add something like
(untested):
diff --git a/tests/generic/050 b/tests/generic/050
index cf2b93814267..593e2e69bf9a 100755
--- a/tests/generic/050
+++ b/tests/generic/050
@@ -59,8 +59,10 @@ blockdev --setro $SCRATCH_DEV
#
echo "mounting read-only block device:"
_try_scratch_mount 2>&1 | _filter_ro_mount
-echo "touching file on read-only filesystem (should fail)"
-touch $SCRATCH_MNT/foo 2>&1 | _filter_scratch
+if [ "${PIPESTATUS[0]}" -eq 0 ]; then
+ echo "touching file on read-only filesystem (should fail)"
+ touch $SCRATCH_MNT/foo 2>&1 | _filter_scratch
+fi
and update xfsquota output accordingly...
Honza
> @@ -1,8 +1,9 @@
> QA output created by 050
> setting device read-only
> mounting read-only block device:
> -mount: /mnt-scratch: permission denied
> +mount: SCRATCH_MNT: permission denied
> touching file on read-only filesystem (should fail)
> +touch: cannot touch 'SCRATCH_MNT/foo': Read-only file system
> unmounting read-only filesystem
> umount: SCRATCH_DEV: not mounted
> setting device read-write
--
Jan Kara <jack@suse.com>
SUSE Labs, CR
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] generic/050: fix xfsquota configuration failures
2019-11-27 12:06 ` Jan Kara
@ 2019-11-27 15:41 ` Darrick J. Wong
0 siblings, 0 replies; 3+ messages in thread
From: Darrick J. Wong @ 2019-11-27 15:41 UTC (permalink / raw)
To: Jan Kara; +Cc: Eryu Guan, fstests, xfs
On Wed, Nov 27, 2019 at 01:06:41PM +0100, Jan Kara wrote:
> On Tue 26-11-19 20:15:38, Darrick J. Wong wrote:
> > From: Darrick J. Wong <darrick.wong@oracle.com>
> >
> > The new 'xfsquota' configuration for generic/050 doesn't filter out
> > SCRATCH_MNT properly and seems to be missing an error message in the
> > golden output. Fix both of these problems.
> >
> > Fixes: e088479871 ("generic/050: Handle xfs quota special case with different output")
> > Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
>
> Umm, I can see how I messed up the SCRATCH_MNT filtering and didn't notice
> - thanks for fixing that. But the error message should not be there. The
> previous mount completely failed so we end up touching file on the parent
> filesystem which succeeds (well, unless the parent filesystem is read-only
> as well).
Heh, yes, I deliberately make the test dir and scratch mounts readonly
so that mount failures show up as errors. Usually I catch it, but this
time I saw the previous line and was too hasty.
> So to avoid this obscure behavior, we should add something like
> (untested):
>
> diff --git a/tests/generic/050 b/tests/generic/050
> index cf2b93814267..593e2e69bf9a 100755
> --- a/tests/generic/050
> +++ b/tests/generic/050
> @@ -59,8 +59,10 @@ blockdev --setro $SCRATCH_DEV
> #
> echo "mounting read-only block device:"
> _try_scratch_mount 2>&1 | _filter_ro_mount
> -echo "touching file on read-only filesystem (should fail)"
> -touch $SCRATCH_MNT/foo 2>&1 | _filter_scratch
> +if [ "${PIPESTATUS[0]}" -eq 0 ]; then
> + echo "touching file on read-only filesystem (should fail)"
> + touch $SCRATCH_MNT/foo 2>&1 | _filter_scratch
> +fi
>
> and update xfsquota output accordingly...
Ok. I'll do that.
--D
>
> Honza
> > @@ -1,8 +1,9 @@
> > QA output created by 050
> > setting device read-only
> > mounting read-only block device:
> > -mount: /mnt-scratch: permission denied
> > +mount: SCRATCH_MNT: permission denied
> > touching file on read-only filesystem (should fail)
> > +touch: cannot touch 'SCRATCH_MNT/foo': Read-only file system
> > unmounting read-only filesystem
> > umount: SCRATCH_DEV: not mounted
> > setting device read-write
> --
> Jan Kara <jack@suse.com>
> SUSE Labs, CR
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-11-27 15:41 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-27 4:15 [PATCH] generic/050: fix xfsquota configuration failures Darrick J. Wong
2019-11-27 12:06 ` Jan Kara
2019-11-27 15:41 ` Darrick J. Wong
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.