On Sun, Apr 24, 2022 at 2:21 PM Baokun Li <libaokun1@xxxxxxxxxx> wrote: > > xfstests support overlay+tmpfs Thanks for this improvement. Can you please share the results of ./check -overlay -g auto ? How many tests ran? notran? failed? Best if you have those numbers compared to overlay+(already supported base fs) > > ```local.config.example > export FSTYP=tmpfs > export TEST_DEV=tmpfs_test > export TEST_DIR=/tmp/test > export TEST_FS_MOUNT_OPTS="-t tmpfs" > export SCRATCH_DEV=tmpfs_scratch > export SCRATCH_MNT=/tmp/scratch > export MOUNT_OPTIONS="-t tmpfs" These mount options for tmpfs are very awkward. Please fix _overlay_base_mount to use -t $OVL_BASE_FSTYP like _test_mount() and _try_scratch_mount() do > ``` > Run `./check -overlay tests` to execute test case on overlay+tmpfs. > > Signed-off-by: Baokun Li <libaokun1@xxxxxxxxxx> > --- > common/config | 4 ++-- > common/rc | 7 ++++++- > 2 files changed, 8 insertions(+), 3 deletions(-) > > diff --git a/common/config b/common/config > index 1033b890..3dc047e8 100644 > --- a/common/config > +++ b/common/config > @@ -614,7 +614,7 @@ _overlay_config_override() > # the new OVL_BASE_SCRATCH/TEST_DEV/MNT vars are set to the values > # of the configured base fs and SCRATCH/TEST_DEV vars are set to the > # overlayfs base and mount dirs inside base fs mount. > - [ -b "$TEST_DEV" ] || [ -c "$TEST_DEV" ] || return 0 > + [ -b "$TEST_DEV" ] || [ -c "$TEST_DEV" ] || [ "$FSTYP" == tmpfs ] || return 0 > > # Config file may specify base fs type, but we obay -overlay flag > [ "$FSTYP" == overlay ] || export OVL_BASE_FSTYP="$FSTYP" Please move the setting of OVL_BASE_FSTYP to the top of the function and use [ "$OVL_BASE_FSTYP" == tmpfs ] consistently. > @@ -634,7 +634,7 @@ _overlay_config_override() > export TEST_DIR="$OVL_BASE_TEST_DIR/$OVL_MNT" > export MOUNT_OPTIONS="$OVERLAY_MOUNT_OPTIONS" > > - [ -b "$SCRATCH_DEV" ] || [ -c "$SCRATCH_DEV" ] || return 0 > + [ -b "$SCRATCH_DEV" ] || [ -c "$SCRATCH_DEV" ] || [ "$OVL_BASE_FSTYP" == tmpfs ] || return 0 > > # Store original base fs vars > export OVL_BASE_SCRATCH_DEV="$SCRATCH_DEV" > diff --git a/common/rc b/common/rc > index 553ae350..12498189 100644 > --- a/common/rc > +++ b/common/rc > @@ -834,13 +834,18 @@ _scratch_mkfs() > local mkfs_status > > case $FSTYP in > - nfs*|cifs|ceph|overlay|glusterfs|pvfs2|9p|virtiofs) > + nfs*|cifs|ceph|glusterfs|pvfs2|9p|virtiofs) > # unable to re-create this fstyp, just remove all files in > # $SCRATCH_MNT to avoid EEXIST caused by the leftover files > # created in previous runs > _scratch_cleanup_files > return $? > ;; > + overlay) > + [ ! "$OVL_BASE_FSTYP" == tmpfs ] || return 0 > + _scratch_cleanup_files > + return $? > + ;; Why? What's the problem with cleaning the ovl-* layers on tmpfs? Thanks, Amir.