diff mbox series

[1/2] common: source base fs specific common file

Message ID 20220525073427.3355242-2-zlang@kernel.org (mailing list archive)
State New, archived
Headers show
Series source fs specific common file properly | expand

Commit Message

Zorro Lang May 25, 2022, 7:34 a.m. UTC
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 OVL_BASE_FSTYP
too.

Signed-off-by: Zorro Lang <zlang@kernel.org>
---
 common/config  | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++
 common/overlay |  4 ++++
 common/rc      | 49 +----------------------------------------
 3 files changed, 64 insertions(+), 48 deletions(-)

Comments

Amir Goldstein May 26, 2022, 6:39 a.m. UTC | #1
On Wed, May 25, 2022 at 2:18 PM Zorro Lang <zlang@kernel.org> wrote:
>
> 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 OVL_BASE_FSTYP
> too.
>
> Signed-off-by: Zorro Lang <zlang@kernel.org>

Makes sense.

Reviewed-by: Amir Goldstein <amir73il@gmail.com>

> ---
>  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 c6428f90..558f148b 100644
> --- a/common/config
> +++ b/common/config
> @@ -481,6 +481,65 @@ _fsck_opts()
>         esac
>  }
>
> +# check necessary running dependences then source sepcific fs helpers
> +_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 c4e7ee58..e35419d0 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 70a15f9c..2f31ca46 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
>
diff mbox series

Patch

diff --git a/common/config b/common/config
index c6428f90..558f148b 100644
--- a/common/config
+++ b/common/config
@@ -481,6 +481,65 @@  _fsck_opts()
 	esac
 }
 
+# check necessary running dependences then source sepcific fs helpers
+_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 c4e7ee58..e35419d0 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 70a15f9c..2f31ca46 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