All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zorro Lang <zlang@kernel.org>
To: fstests@vger.kernel.org
Cc: amir73il@gmail.com
Subject: [PATCH] common/overlay: source base fs specific common file
Date: Fri, 13 May 2022 01:56:03 +0800	[thread overview]
Message-ID: <20220512175603.2833164-1-zlang@kernel.org> (raw)

When tests overlayfs, sometimes we need the underlying fs specific
helpers, e.g. common/rc has:
  _filesystem_timestamp_range $OVL_BASE_TEST_DEV $OVL_BASE_FSTYP

So when we source common/overlay, better to source then OVL_BASE_FSTYP
too.

Signed-off-by: Zorro Lang <zlang@kernel.org>
---

The generic/402 always fails on overlayfs as:

  QA output created by 402
  ./common/rc: line 2441: _xfs_timestamp_range: command not found
  ./common/rc: line 2403: [: syntax error: '-1' unexpected
  ./common/rc: line 2408: [: -le: unary operator expected
  ./common/rc: line 2441: _xfs_timestamp_range: command not found
  0;0 != 1;1
  0;0 != 1;1
  Silence is golden

Due to if FSTYP is overlay, we only source common/overlay file. But we
still need the helpers of the underlying filesystem. So I think we need
to source the common/$OVL_BASE_FSTYP in common/overlay. What do you think?

Thanks,
Zorro


 common/config  | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++
 common/overlay |  4 ++++
 common/rc      | 49 +----------------------------------------
 3 files changed, 64 insertions(+), 48 deletions(-)

diff --git a/common/config b/common/config
index efcf12e9..b4b2a8d4 100644
--- a/common/config
+++ b/common/config
@@ -481,6 +481,65 @@ _fsck_opts()
 	esac
 }
 
+_source_specific_fs()
+{
+	local fs=$1
+
+	if [ -z "$fs" ];then
+		fs=$FSTYP
+	fi
+
+	case "$fs" in
+	xfs)
+		[ "$XFS_LOGPRINT_PROG" = "" ] && _fatal "xfs_logprint not found"
+		[ "$XFS_REPAIR_PROG" = "" ] && _fatal "xfs_repair not found"
+		[ "$XFS_DB_PROG" = "" ] && _fatal "xfs_db not found"
+		[ "$MKFS_XFS_PROG" = "" ] && _fatal "mkfs_xfs not found"
+		[ "$XFS_INFO_PROG" = "" ] && _fatal "xfs_info not found"
+
+		. ./common/xfs
+		;;
+	udf)
+		[ "$MKFS_UDF_PROG" = "" ] && _fatal "mkfs_udf/mkudffs not found"
+		;;
+	btrfs)
+		[ "$MKFS_BTRFS_PROG" = "" ] && _fatal "mkfs.btrfs not found"
+
+		. ./common/btrfs
+		;;
+	ext4)
+		[ "$MKFS_EXT4_PROG" = "" ] && _fatal "mkfs.ext4 not found"
+		;;
+	f2fs)
+		[ "$MKFS_F2FS_PROG" = "" ] && _fatal "mkfs.f2fs not found"
+		;;
+	nfs)
+		. ./common/nfs
+		;;
+	cifs)
+		;;
+	9p)
+		;;
+	ceph)
+		. ./common/ceph
+		;;
+	glusterfs)
+		;;
+	overlay)
+		. ./common/overlay
+		;;
+	reiser4)
+		[ "$MKFS_REISER4_PROG" = "" ] && _fatal "mkfs.reiser4 not found"
+		;;
+	pvfs2)
+		;;
+	ubifs)
+		[ "$UBIUPDATEVOL_PROG" = "" ] && _fatal "ubiupdatevol not found"
+		;;
+	esac
+}
+
+
 known_hosts()
 {
 	[ "$HOST_CONFIG_DIR" ] || HOST_CONFIG_DIR=`pwd`/configs
diff --git a/common/overlay b/common/overlay
index fff67ba1..4708d393 100644
--- a/common/overlay
+++ b/common/overlay
@@ -12,6 +12,10 @@ export OVL_XATTR_NLINK="trusted.overlay.nlink"
 export OVL_XATTR_UPPER="trusted.overlay.upper"
 export OVL_XATTR_METACOPY="trusted.overlay.metacopy"
 
+if [ -n "$OVL_BASE_FSTYP" ];then
+	_source_specific_fs $OVL_BASE_FSTYP
+fi
+
 # helper function to do the actual overlayfs mount operation
 _overlay_mount_dirs()
 {
diff --git a/common/rc b/common/rc
index e907e362..ebdeeb93 100644
--- a/common/rc
+++ b/common/rc
@@ -96,54 +96,7 @@ _log_err()
 umask 022
 
 # check for correct setup and source the $FSTYP specific functions now
-case "$FSTYP" in
-    xfs)
-	 [ "$XFS_LOGPRINT_PROG" = "" ] && _fatal "xfs_logprint not found"
-	 [ "$XFS_REPAIR_PROG" = "" ] && _fatal "xfs_repair not found"
-	 [ "$XFS_DB_PROG" = "" ] && _fatal "xfs_db not found"
-	 [ "$MKFS_XFS_PROG" = "" ] && _fatal "mkfs_xfs not found"
-	 [ "$XFS_INFO_PROG" = "" ] && _fatal "xfs_info not found"
-
-	 . ./common/xfs
-	 ;;
-    udf)
-	 [ "$MKFS_UDF_PROG" = "" ] && _fatal "mkfs_udf/mkudffs not found"
-	 ;;
-    btrfs)
-	 [ "$MKFS_BTRFS_PROG" = "" ] && _fatal "mkfs.btrfs not found"
-
-	 . ./common/btrfs
-	 ;;
-    ext4)
-	 [ "$MKFS_EXT4_PROG" = "" ] && _fatal "mkfs.ext4 not found"
-	 ;;
-    f2fs)
-	 [ "$MKFS_F2FS_PROG" = "" ] && _fatal "mkfs.f2fs not found"
-	 ;;
-    nfs)
-	 . ./common/nfs
-	 ;;
-    cifs)
-	 ;;
-    9p)
-	 ;;
-    ceph)
-	 . ./common/ceph
-	 ;;
-    glusterfs)
-	 ;;
-    overlay)
-	 . ./common/overlay
-	 ;;
-    reiser4)
-	 [ "$MKFS_REISER4_PROG" = "" ] && _fatal "mkfs.reiser4 not found"
-	 ;;
-    pvfs2)
-	;;
-    ubifs)
-	[ "$UBIUPDATEVOL_PROG" = "" ] && _fatal "ubiupdatevol not found"
-	;;
-esac
+_source_specific_fs $FSTYP
 
 if [ ! -z "$REPORT_LIST" ]; then
 	. ./common/report
-- 
2.31.1


             reply	other threads:[~2022-05-12 17:56 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-12 17:56 Zorro Lang [this message]
2022-05-12 18:11 ` [PATCH] common/overlay: source base fs specific common file Amir Goldstein
2022-05-12 18:29   ` Zorro Lang
2022-05-13  0:54     ` Amir Goldstein

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=20220512175603.2833164-1-zlang@kernel.org \
    --to=zlang@kernel.org \
    --cc=amir73il@gmail.com \
    --cc=fstests@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.