All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: guaneryu@gmail.com, darrick.wong@oracle.com
Cc: linux-xfs@vger.kernel.org, fstests@vger.kernel.org
Subject: [PATCH 8/8] xfs: filter out mount options that don't work on v4 filesystems
Date: Thu, 01 Nov 2018 16:19:52 -0700	[thread overview]
Message-ID: <154111439271.6577.9895278106106014415.stgit@magnolia> (raw)
In-Reply-To: <154111434286.6577.15010861884505931015.stgit@magnolia>

From: Darrick J. Wong <darrick.wong@oracle.com>

A few tests require v4 filesystems and enforce this by disabling crc's
in the _scratch_mkfs call.  However, if the user specified MOUNT_OPTIONS
that only work with v5 filesystems, these tests fail.  If we detect a
test creating a v4 scratch filesystem, filter out incompatible mount
options that don't work on v4, such as simultaneous group/project quota.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
---
 common/xfs |   24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)


diff --git a/common/xfs b/common/xfs
index 80340b0d..484e6ab6 100644
--- a/common/xfs
+++ b/common/xfs
@@ -89,6 +89,7 @@ _scratch_mkfs_xfs()
 	_scratch_do_mkfs "$mkfs_cmd" "$mkfs_filter" $* 2>$tmp.mkfserr 1>$tmp.mkfsstd
 	mkfs_status=$?
 
+	grep -q crc=0 $tmp.mkfsstd && _force_xfsv4_mount_options
 
 	if [ $mkfs_status -eq 0 -a "$LARGE_SCRATCH_DEV" = yes ]; then
 		# manually parse the mkfs output to get the fs size in bytes
@@ -779,3 +780,26 @@ _scratch_get_bmx_prefix() {
 	_scratch_xfs_db -c "inode ${ino}" -c 'p' >> $seqres.full
 	return 1
 }
+
+#
+# Ensures that we don't pass any mount options incompatible with XFS v4
+#
+_force_xfsv4_mount_options()
+{
+	local gquota=0
+	local pquota=0
+
+	# Can't have group and project quotas in XFS v4
+	echo "$MOUNT_OPTIONS" | egrep -q "(gquota|grpquota|grpjquota=|gqnoenforce)" && gquota=1
+	echo "$MOUNT_OPTIONS" | egrep -q "(\bpquota|prjquota|pqnoenforce)" && pquota=1
+
+	if [ $gquota -gt 0 ] && [ $pquota -gt 0 ]; then
+		export MOUNT_OPTIONS=$(echo $MOUNT_OPTIONS \
+			| sed   -e 's/gquota/QUOTA/g'      \
+				-e 's/grpquota/QUOTA/g'    \
+				-e 's/grpjquota=[^, ]/QUOTA/g' \
+				-e 's/gqnoenforce/QUOTA/g' \
+				-e "s/QUOTA/defaults/g")
+	fi
+	echo "MOUNT_OPTIONS = $MOUNT_OPTIONS" >>$seqres.full
+}

  parent reply	other threads:[~2018-11-02  8:25 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-01 23:19 [PATCH 0/8] fstests: fix quota failures on xfs Darrick J. Wong
2018-11-01 23:19 ` [PATCH 1/8] quota: clean out speculative preallocations when checking quota usage Darrick J. Wong
2018-11-01 23:19 ` [PATCH 2/8] xfs: force unlink metadata updates to disk Darrick J. Wong
2018-11-01 23:19 ` [PATCH 3/8] generic/050: fix ro blockdev mount of xfs with quota Darrick J. Wong
2018-11-04 15:32   ` Eryu Guan
2018-11-27 23:19     ` Darrick J. Wong
2018-11-28  3:03       ` Eryu Guan
2018-11-28  3:41         ` Darrick J. Wong
2018-11-01 23:19 ` [PATCH 4/8] dump: don't fail if multi-file dumps don't all contain quota info Darrick J. Wong
2018-11-01 23:19 ` [PATCH 5/8] xfs/266: fix restore summary counter when quotas are enabled Darrick J. Wong
2018-11-01 23:19 ` [PATCH 6/8] xfs/205: update for v5 filesystems Darrick J. Wong
2018-11-01 23:19 ` [PATCH 7/8] misc: force the exact quota options coded into the test Darrick J. Wong
2018-11-01 23:19 ` Darrick J. Wong [this message]
2018-11-04 16:01 ` [PATCH 0/8] fstests: fix quota failures on xfs Eryu Guan
2018-11-06  4:54   ` Darrick J. Wong

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=154111439271.6577.9895278106106014415.stgit@magnolia \
    --to=darrick.wong@oracle.com \
    --cc=fstests@vger.kernel.org \
    --cc=guaneryu@gmail.com \
    --cc=linux-xfs@vger.kernel.org \
    /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.