From: Eryu Guan <guaneryu@gmail.com>
To: Jan Kara <jack@suse.cz>
Cc: fstests@vger.kernel.org, "Darrick J. Wong" <darrick.wong@oracle.com>
Subject: Re: [PATCH 2/2] generic/050: Handle xfs quota special case with different output
Date: Sun, 10 Nov 2019 22:10:54 +0800 [thread overview]
Message-ID: <20191110141052.GE8664@desktop> (raw)
In-Reply-To: <20191105131922.24848-3-jack@suse.cz>
[cc'ed Darrick for his inputs, if there's any]
On Tue, Nov 05, 2019 at 02:19:22PM +0100, Jan Kara wrote:
> Instead of faking output for the case of XFS with quotas, just use a
> different output file with appropriate output.
>
> Signed-off-by: Jan Kara <jack@suse.cz>
> ---
> tests/generic/050 | 29 ++++++-----------------------
> tests/generic/050.cfg | 1 +
> tests/generic/050.out.xfsquota | 22 ++++++++++++++++++++++
> 3 files changed, 29 insertions(+), 23 deletions(-)
> create mode 100644 tests/generic/050.out.xfsquota
>
> diff --git a/tests/generic/050 b/tests/generic/050
> index a8d648e5eede..c5375805fd7a 100755
> --- a/tests/generic/050
> +++ b/tests/generic/050
> @@ -39,27 +39,15 @@ _require_norecovery
> features=""
> if ! _has_metadata_journaling $SCRATCH_DEV >/dev/null; then
> features="nojournal"
> +elif [ "$FSTYP" = "xfs" ] && echo "$MOUNT_OPTIONS" | grep -q quota ; then
> + # Mounting with quota on XFS requires a writable fs, which means
> + # we expect to fail the ro blockdev test with with EPERM.
> + features="xfsquota"
Given that we already have a non-default output for "nojournal" feature,
this looks fine to me.
> fi
> _link_out_file "$features"
>
> _scratch_mkfs >/dev/null 2>&1
>
> -filter_ro_mount() {
> - local arg=""
> -
> - if [ -n "$expect_mount_failure" ]; then
> - arg="s|mount: $SCRATCH_MNT: permission denied|mount: device write-protected, mounting read-only|g"
> - fi
> - sed -e "$arg" | _filter_ro_mount
> -}
> -
> -# Mounting with quota on XFS requires a writable fs, which means
> -# we expect to fail the ro blockdev test with with EPERM.
> -expect_mount_failure=
> -if [ "$FSTYP" = "xfs" ] && echo "$MOUNT_OPTIONS" | grep -q quota ; then
> - expect_mount_failure=1
> -fi
> -
> #
> # Mark the device read-only
> #
> @@ -70,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
> if [ "${PIPESTATUS[0]}" -eq 0 ]; then
But I think we could remove above check as a whole, just do
_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
echo "unmounting read-only filesystem"
_scratch_unmount 2>&1 | _filter_scratch
as what we did prior to commit b0415daaa968 ("generic/050: fix ro
blockdev mount of xfs with quota").
> echo "touching file on read-only filesystem (should fail)"
> touch $SCRATCH_MNT/foo 2>&1 | _filter_scratch
> @@ -81,11 +69,6 @@ if [ "${PIPESTATUS[0]}" -eq 0 ]; then
> #
> echo "unmounting read-only filesystem"
> _scratch_unmount 2>&1 | _filter_scratch
> -elif [ -n "${expect_mount_failure}" ]; then
> - # Mount failed, so simulate EROFS instead of scribbling on root fs
> - echo "touching file on read-only filesystem (should fail)"
> - echo "touch: cannot touch 'SCRATCH_MNT/foo': Read-only file system"
> - echo "unmounting read-only filesystem"
> else
> echo "Mount failed, though it wasn't supposed to!"
> fi
So this message could be removed too, which is confusing in xfsquota
case, and _scratch_unmount error message would break golden image in
non-xfsquota case.
> @@ -124,7 +107,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
> if [ "${PIPESTATUS[0]}" -eq 0 ]; then
> echo "unmounting read-only filesystem"
> _scratch_unmount 2>&1 | _filter_scratch
> diff --git a/tests/generic/050.cfg b/tests/generic/050.cfg
> index c76bd473873b..1d9d60bc69a0 100644
> --- a/tests/generic/050.cfg
> +++ b/tests/generic/050.cfg
> @@ -1 +1,2 @@
> nojournal: nojournal
> +xfsquota: xfsquota
> diff --git a/tests/generic/050.out.xfsquota b/tests/generic/050.out.xfsquota
> new file mode 100644
> index 000000000000..1a90d525c40a
> --- /dev/null
> +++ b/tests/generic/050.out.xfsquota
> @@ -0,0 +1,22 @@
> +QA output created by 050
> +setting device read-only
> +mounting read-only block device:
> +mount: /mnt-scratch: permission denied
> +Mount failed, though it wasn't supposed to!
This is confusing, we expect a mount failure in xfsquota case.
Thanks,
Eryu
> +setting device read-write
> +mounting read-write block device:
> +touch files
> +going down:
> +unmounting shutdown filesystem:
> +setting device read-only
> +mounting filesystem that needs recovery on a read-only device:
> +mount: device write-protected, mounting read-only
> +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 failed, though it wasn't supposed to!
> +setting device read-write
> +mounting filesystem that needs recovery with -o ro:
> +*** done
> --
> 2.16.4
>
next prev parent reply other threads:[~2019-11-10 14:11 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-05 13:19 [PATCH 0/2] generic/050 fixes Jan Kara
2019-11-05 13:19 ` [PATCH 1/2] generic/050: Fix test failure for filesystems without journal Jan Kara
2019-11-05 13:19 ` [PATCH 2/2] generic/050: Handle xfs quota special case with different output Jan Kara
2019-11-10 14:10 ` Eryu Guan [this message]
2019-11-11 14:29 ` Jan Kara
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=20191110141052.GE8664@desktop \
--to=guaneryu@gmail.com \
--cc=darrick.wong@oracle.com \
--cc=fstests@vger.kernel.org \
--cc=jack@suse.cz \
/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.