On Wed, May 25, 2022 at 2:18 PM Zorro Lang <zlang@xxxxxxxxxx> 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@xxxxxxxxxx> Makes sense. Reviewed-by: Amir Goldstein <amir73il@xxxxxxxxx> > --- > 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 >