$MOUNT_PROG -t overlay $diropts `_common_dev_mount_options $*`
}
+# Mount with mnt/dev of scratch mount and custom mount options
+_overlay_scratch_mount_opts()
+{
+ $MOUNT_PROG -t overlay $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT $*
+}
+
# Mount with same options/mnt/dev of scratch mount, but optionally
# with different lower/upper/work dirs
_overlay_scratch_mount_dirs()
local datadir="$OVL_BASE_SCRATCH_MNT/$OVL_LOWER"
_scratch_mkfs > /dev/null 2>&1
- $MOUNT_PROG -t overlay $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT \
+ _overlay_scratch_mount_opts \
-o"lowerdir+=$lowerdir,datadir+=$datadir" \
-o"redirect_dir=follow,metacopy=on" > /dev/null 2>&1 || \
_notrun "overlay lowerdir+,datadir+ not supported on ${SCRATCH_DEV}"
# $upperdir overlaid on top of $lowerdir, so that "trusted.overlay.opaque"
# xattr should be honored and should not be listed
# mount readonly, because there's no upper and workdir
-$MOUNT_PROG -t overlay -o ro -o lowerdir=$upperdir:$lowerdir $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT
+_overlay_scratch_mount_opts -o ro -o lowerdir=$upperdir:$lowerdir
# Dump trusted.overlay xattr, we should not see the "opaque" xattr
_getfattr -d -m overlay $SCRATCH_MNT/testdir
# Mount overlay with lower layers only.
# Verify that overlay is mounted read-only and that it cannot be remounted rw.
-$MOUNT_PROG -t overlay -o"lowerdir=$lowerdir2:$lowerdir1" \
- $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT
+_overlay_scratch_mount_opts -o"lowerdir=$lowerdir2:$lowerdir1"
touch $SCRATCH_MNT/foo 2>&1 | _filter_scratch
$MOUNT_PROG -o remount,rw $SCRATCH_MNT 2>&1 | _filter_ro_mount
$UMOUNT_PROG $SCRATCH_MNT
# Check encode/decode/read of lower file handles on lower layers only r/o overlay.
# For non-upper overlay mount, nfs_export requires disabling redirect_dir.
-$MOUNT_PROG -t overlay $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT \
+_overlay_scratch_mount_opts \
-o ro,redirect_dir=nofollow,nfs_export=on,lowerdir=$middle:$lower
test_file_handles $SCRATCH_MNT/lowertestdir -rp
test_file_handles $SCRATCH_MNT/lowertestdir/subdir -rp
# Overlay lookup cannot follow the redirect from $upper/lowertestdir.new to
# $lower/lowertestdir. Instead, we mount an overlay subtree rooted at these
# directories.
-$MOUNT_PROG -t overlay $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT \
+_overlay_scratch_mount_opts \
-o ro,redirect_dir=nofollow,nfs_export=on,lowerdir=$upper/lowertestdir.new:$lower/lowertestdir
test_file_handles $SCRATCH_MNT -r
test_file_handles $SCRATCH_MNT/subdir -rp
# Check encode/decode/read of lower file handles on lower layers only r/o overlay.
# For non-upper overlay mount, nfs_export requires disabling redirect_dir.
-$MOUNT_PROG -t overlay $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT \
+_overlay_scratch_mount_opts \
-o ro,redirect_dir=nofollow,nfs_export=on,lowerdir=$middle:$lower
test_file_handles $SCRATCH_MNT/lowertestdir -rp
test_file_handles $SCRATCH_MNT/lowertestdir/subdir -rp
# Overlay lookup cannot follow the redirect from $upper/lowertestdir.new to
# $lower/lowertestdir. Instead, we mount an overlay subtree rooted at these
# directories.
-$MOUNT_PROG -t overlay $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT \
+_overlay_scratch_mount_opts \
-o ro,redirect_dir=nofollow,nfs_export=on,lowerdir=$upper/lowertestdir.new:$lower/lowertestdir
test_file_handles $SCRATCH_MNT -r
test_file_handles $SCRATCH_MNT/subdir -rp
$MOUNT_PROG --bind $lowertestdir $lowertestdir
# For non-upper overlay mount, nfs_export requires disabling redirect_dir.
-$MOUNT_PROG -t overlay $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT \
+_overlay_scratch_mount_opts \
-o ro,redirect_dir=nofollow,nfs_export=on,lowerdir=$lower:$lower2
# Decode an overlay directory file handle, whose underlying lower dir dentry
{
local _lowerdir=$1 _datadir2=$2 _datadir=$3
- $MOUNT_PROG -t overlay $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT \
+ _overlay_scratch_mount_opts \
-o"lowerdir=$_lowerdir::$_datadir2::$_datadir" \
-o"upperdir=$upperdir,workdir=$workdir" \
-o redirect_dir=on,metacopy=on
{
local _lowerdir=$1 _datadir2=$2 _datadir=$3
- $MOUNT_PROG -t overlay $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT \
+ _overlay_scratch_mount_opts \
-o"lowerdir=$_lowerdir::$_datadir2::$_datadir" \
-o redirect_dir=follow,metacopy=on
}
{
local _lowerdir=$1 _datadir2=$2 _datadir=$3
- $MOUNT_PROG -t overlay $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT \
+ _overlay_scratch_mount_opts \
-o"lowerdir+=$_lowerdir,datadir+=$_datadir2,datadir+=$_datadir" \
-o"upperdir=$upperdir,workdir=$workdir" \
-o redirect_dir=on,metacopy=on
{
local _lowerdir=$1 _datadir2=$2 _datadir=$3
- $MOUNT_PROG -t overlay $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT \
+ _overlay_scratch_mount_opts \
-o"lowerdir+=$_lowerdir,datadir+=$_datadir2,datadir+=$_datadir" \
-o redirect_dir=follow,metacopy=on
}