overlay/06[89]: fix test run with nfs_export feature enabled by default
authorAmir Goldstein <amir73il@gmail.com>
Thu, 9 Apr 2020 14:09:21 +0000 (17:09 +0300)
committerEryu Guan <guaneryu@gmail.com>
Sun, 19 Apr 2020 15:25:51 +0000 (23:25 +0800)
The tests were checking that nfs_export feature was successfully enabled
by greping for nfs_export=on option in /proc/mounts.

This check was incorrect if the module default was nfs_export enabled
and caused test to not run with the message:
    cannot enable nfs_export feature on nested overlay

Use a helper that checks this condition correctly.

Reported-by: Chengguang Xu <cgxu519@mykernel.net>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
common/overlay
tests/overlay/068
tests/overlay/069

index 65c639e9c6d8b6670cf7a417c746c33bfecc11ac..f8e1e27fd8f945b50bdbc830b4b6582b6e88e272 100644 (file)
@@ -137,9 +137,11 @@ _overlay_scratch_unmount()
 }
 
 # Check that a specific overlayfs feature is supported
-__check_scratch_overlay_feature()
+_check_overlay_feature()
 {
        local feature=$1
+       local dev=$2
+       local mnt=$3
 
        # overalyfs features (e.g. redirect_dir, index) are
        # configurable from Kconfig (the build default), by module
@@ -153,10 +155,10 @@ __check_scratch_overlay_feature()
        # index=off if underlying fs does not support file handles.
        # Overlayfs only displays mount option if it differs from the default.
        # Overlayfs may enable the feature, but fallback to read-only mount.
-       ((( [ "$default" = N ] && _fs_options $SCRATCH_DEV | grep -q "${feature}=on" ) || \
-         ( [ "$default" = Y ] && ! _fs_options $SCRATCH_DEV | grep -q "${feature}=off" )) && \
-           touch $SCRATCH_MNT/foo 2>/dev/null ) || \
-               _notrun "${FSTYP} feature '${feature}' cannot be enabled on ${SCRATCH_DEV}"
+       ((( [ "$default" = N ] && _fs_options $dev | grep -q "${feature}=on" ) || \
+         ( [ "$default" = Y ] && ! _fs_options $dev | grep -q "${feature}=off" )) && \
+           touch $mnt/foo 2>/dev/null ) || \
+               _notrun "${FSTYP} feature '${feature}' cannot be enabled on ${dev}"
 }
 
 # Require a set of overlayfs features
@@ -178,7 +180,7 @@ _require_scratch_overlay_features()
                _notrun "overlay features '${features[*]}' cannot be enabled on ${SCRATCH_DEV}"
 
        for feature in ${features[*]}; do
-               __check_scratch_overlay_feature ${feature}
+               _check_overlay_feature ${feature} $SCRATCH_DEV $SCRATCH_MNT
        done
 
        _scratch_unmount
index 933768ba452fb696f8656f4553ed6f127762d585..7dfd6a73bfeffff87d0856c556a15ab756639b70 100755 (executable)
@@ -102,8 +102,7 @@ mount_dirs()
        _overlay_mount_dirs $SCRATCH_MNT $upper2 $work2 overlay2 $mnt2 \
                -o "index=on,nfs_export=on,redirect_dir=on" 2>/dev/null ||
                _notrun "cannot mount nested overlay with nfs_export=on option"
-       _fs_options overlay2 | grep -q "nfs_export=on" || \
-               _notrun "cannot enable nfs_export feature on nested overlay"
+       _check_overlay_feature nfs_export overlay2 $mnt2
 }
 
 # Unmount the nested overlay mount and check underlying overlay layers
index de7aa0d7d6a76f18fe9c3bbda079cb094ed00f44..77dfce63f1643d2f62a79e4dd3efdba3c5a72dc4 100755 (executable)
@@ -110,8 +110,7 @@ mount_dirs()
        _overlay_mount_dirs $SCRATCH_MNT $upper2 $work2 overlay2 $mnt2 \
                -o "index=on,nfs_export=on,redirect_dir=on" 2>/dev/null ||
                _notrun "cannot mount nested overlay with nfs_export=on option"
-       _fs_options overlay2 | grep -q "nfs_export=on" || \
-               _notrun "cannot enable nfs_export feature on nested overlay"
+       _check_overlay_feature nfs_export overlay2 $mnt2
 }
 
 # Unmount the nested overlay mount and check underlying overlay layers