mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
overlay: use OVL_BASE_SCRATCH_MNT instead of SCRATCH_DEV
Use the new var OVL_BASE_SCRATCH_MNT to refer to overlay base dir instead of the legacy SCRATCH_DEV var. In overlay/011, when using MOUNT_PROG directly, provide OVL_BASE_SCRATCH_MNT as device argument instead of 'none'. This fix is required to support mount of base fs. Signed-off-by: Amir Goldstein <amir73il@gmail.com> Reviewed-by: Eryu Guan <eguan@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit is contained in:
committed by
Eryu Guan
parent
2ab614524d
commit
33e4199895
+3
-4
@@ -55,12 +55,11 @@ _require_scratch
|
||||
_scratch_mkfs
|
||||
|
||||
# overlay copy_up doesn't deal with sparse file well, holes will be filled by
|
||||
# zeros, so at least (4G + 4G + 8k) free space is needed on $SCRATCH_DEV,
|
||||
# where $SCRATCH_DEV is actually a test dir used in overlay testing
|
||||
_require_fs_space $SCRATCH_DEV $((4*1024*1024*2 + 8))
|
||||
# zeros, so at least (4G + 4G + 8k) free space is needed on scratch base fs
|
||||
_require_fs_space $OVL_BASE_SCRATCH_MNT $((4*1024*1024*2 + 8))
|
||||
|
||||
# Create test files with different sizes in lower dir
|
||||
lowerdir=$SCRATCH_DEV/$OVL_LOWER
|
||||
lowerdir=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER
|
||||
mkdir -p $lowerdir
|
||||
touch $lowerdir/zero_size
|
||||
$XFS_IO_PROG -fc "pwrite 0 4k" $lowerdir/less_than_4g >>$seqres.full
|
||||
|
||||
+1
-1
@@ -59,7 +59,7 @@ _require_scratch
|
||||
_scratch_mkfs
|
||||
|
||||
# Create our test file.
|
||||
lowerdir=$SCRATCH_DEV/$OVL_LOWER
|
||||
lowerdir=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER
|
||||
mkdir -p $lowerdir
|
||||
touch $lowerdir/foobar
|
||||
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ _require_scratch
|
||||
_scratch_mkfs
|
||||
|
||||
# Create test files dirs in lower dir
|
||||
lowerdir=${SCRATCH_DEV}/${OVL_LOWER}
|
||||
lowerdir=${OVL_BASE_SCRATCH_MNT}/${OVL_LOWER}
|
||||
mkdir -p $lowerdir
|
||||
|
||||
touch ${lowerdir}/test_file
|
||||
|
||||
+2
-2
@@ -53,8 +53,8 @@ _require_user
|
||||
_scratch_mkfs
|
||||
|
||||
# Create test file in lower dir
|
||||
lowerdir=${SCRATCH_DEV}/${OVL_LOWER}
|
||||
upperdir=${SCRATCH_DEV}/${OVL_UPPER}
|
||||
lowerdir=${OVL_BASE_SCRATCH_MNT}/${OVL_LOWER}
|
||||
upperdir=${OVL_BASE_SCRATCH_MNT}/${OVL_UPPER}
|
||||
mkdir -p $lowerdir
|
||||
touch ${lowerdir}/attr_file1
|
||||
chmod 000 ${lowerdir}/attr_file1
|
||||
|
||||
+15
-15
@@ -61,31 +61,31 @@ _require_loop
|
||||
_scratch_mkfs
|
||||
|
||||
# setup loop images fs for overlayfs
|
||||
lower_img=${SCRATCH_DEV}/${seq}.$$.img
|
||||
lower_img=${OVL_BASE_SCRATCH_MNT}/${seq}.$$.img
|
||||
$XFS_IO_PROG -f -c "truncate 120m" $lower_img >>$seqres.full 2>&1
|
||||
fs_loop_dev=`_create_loop_device $lower_img`
|
||||
$MKFS_XFS_PROG -f -n ftype=1 $fs_loop_dev >>$seqres.full 2>&1
|
||||
|
||||
# only 20m for upper dir
|
||||
upper_img=${SCRATCH_DEV}/$$.${seq}.img
|
||||
upper_img=${OVL_BASE_SCRATCH_MNT}/$$.${seq}.img
|
||||
$XFS_IO_PROG -f -c "truncate 20m" $upper_img >>$seqres.full 2>&1
|
||||
upper_loop_dev=`_create_loop_device $upper_img`
|
||||
$MKFS_XFS_PROG -f -n ftype=1 $upper_loop_dev >>$seqres.full 2>&1
|
||||
|
||||
# mount underlying xfs
|
||||
mkdir -p ${SCRATCH_DEV}/lowermnt
|
||||
mkdir -p ${SCRATCH_DEV}/uppermnt
|
||||
$MOUNT_PROG $fs_loop_dev ${SCRATCH_DEV}/lowermnt
|
||||
$MOUNT_PROG $upper_loop_dev ${SCRATCH_DEV}/uppermnt
|
||||
mkdir -p ${OVL_BASE_SCRATCH_MNT}/lowermnt
|
||||
mkdir -p ${OVL_BASE_SCRATCH_MNT}/uppermnt
|
||||
$MOUNT_PROG $fs_loop_dev ${OVL_BASE_SCRATCH_MNT}/lowermnt
|
||||
$MOUNT_PROG $upper_loop_dev ${OVL_BASE_SCRATCH_MNT}/uppermnt
|
||||
|
||||
# prepare dirs
|
||||
mkdir -p ${SCRATCH_DEV}/lowermnt/lower
|
||||
mkdir -p ${SCRATCH_DEV}/uppermnt/upper
|
||||
mkdir -p ${SCRATCH_DEV}/uppermnt/work
|
||||
mkdir -p ${OVL_BASE_SCRATCH_MNT}/lowermnt/lower
|
||||
mkdir -p ${OVL_BASE_SCRATCH_MNT}/uppermnt/upper
|
||||
mkdir -p ${OVL_BASE_SCRATCH_MNT}/uppermnt/work
|
||||
|
||||
lowerd=${SCRATCH_DEV}/lowermnt/lower
|
||||
upperd=${SCRATCH_DEV}/uppermnt/upper
|
||||
workd=${SCRATCH_DEV}/uppermnt/work
|
||||
lowerd=${OVL_BASE_SCRATCH_MNT}/lowermnt/lower
|
||||
upperd=${OVL_BASE_SCRATCH_MNT}/uppermnt/upper
|
||||
workd=${OVL_BASE_SCRATCH_MNT}/uppermnt/work
|
||||
|
||||
# Create test file in lower dir, with too big a size for
|
||||
# upper dir to copy up.
|
||||
@@ -93,7 +93,7 @@ $XFS_IO_PROG -f -c "truncate 48m" ${lowerd}/test_file \
|
||||
>>$seqres.full 2>&1
|
||||
|
||||
# mount new overlayfs
|
||||
_overlay_mount_dirs $lowerd $upperd $workd $SCRATCH_DEV $SCRATCH_MNT
|
||||
_overlay_mount_dirs $lowerd $upperd $workd $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT
|
||||
|
||||
# the open call triggers copy-up and it will fail ENOSPC
|
||||
$XFS_IO_PROG -f -c "o" ${SCRATCH_MNT}/test_file \
|
||||
@@ -103,8 +103,8 @@ $XFS_IO_PROG -f -c "o" ${SCRATCH_MNT}/test_file \
|
||||
$UMOUNT_PROG $SCRATCH_MNT
|
||||
|
||||
# unmount undelying xfs, this tiggers panic if memleak happens
|
||||
$UMOUNT_PROG ${SCRATCH_DEV}/uppermnt
|
||||
$UMOUNT_PROG ${SCRATCH_DEV}/lowermnt
|
||||
$UMOUNT_PROG ${OVL_BASE_SCRATCH_MNT}/uppermnt
|
||||
$UMOUNT_PROG ${OVL_BASE_SCRATCH_MNT}/lowermnt
|
||||
|
||||
# success, all done
|
||||
echo "Silence is golden"
|
||||
|
||||
+4
-4
@@ -57,10 +57,10 @@ echo "Silence is golden"
|
||||
_scratch_mkfs
|
||||
|
||||
# Create test file/dir before mount
|
||||
mkdir -p $SCRATCH_DEV/$OVL_LOWER
|
||||
mkdir -p $SCRATCH_DEV/$OVL_UPPER
|
||||
touch $SCRATCH_DEV/$OVL_LOWER/lowertestfile
|
||||
mkdir $SCRATCH_DEV/$OVL_UPPER/uppertestdir
|
||||
mkdir -p $OVL_BASE_SCRATCH_MNT/$OVL_LOWER
|
||||
mkdir -p $OVL_BASE_SCRATCH_MNT/$OVL_UPPER
|
||||
touch $OVL_BASE_SCRATCH_MNT/$OVL_LOWER/lowertestfile
|
||||
mkdir $OVL_BASE_SCRATCH_MNT/$OVL_UPPER/uppertestdir
|
||||
|
||||
_scratch_mount
|
||||
|
||||
|
||||
+2
-2
@@ -56,13 +56,13 @@ _require_user
|
||||
_scratch_mkfs
|
||||
|
||||
# Create test file on lower dir, and chown to fsgqa user
|
||||
lowerdir=$SCRATCH_DEV/$OVL_LOWER
|
||||
lowerdir=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER
|
||||
mkdir -p $lowerdir
|
||||
touch $lowerdir/testfile
|
||||
chown fsgqa:fsgqa $lowerdir/testfile
|
||||
|
||||
# chown upperdir to fsgqa user, so new file/dir can be created by the user
|
||||
upperdir=$SCRATCH_DEV/$OVL_UPPER
|
||||
upperdir=$OVL_BASE_SCRATCH_MNT/$OVL_UPPER
|
||||
mkdir -p $upperdir
|
||||
chown fsgqa:fsgqa $upperdir
|
||||
|
||||
|
||||
+1
-1
@@ -54,7 +54,7 @@ _require_scratch
|
||||
_scratch_mkfs
|
||||
|
||||
# Create test file in lowerdir
|
||||
lowerdir=$SCRATCH_DEV/$OVL_LOWER
|
||||
lowerdir=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER
|
||||
mkdir -p $lowerdir
|
||||
touch $lowerdir/testfile
|
||||
|
||||
|
||||
+5
-5
@@ -55,10 +55,10 @@ _scratch_mkfs
|
||||
|
||||
# Need two lower dirs in this test, and we mount overlay ourselves,
|
||||
# create upper and workdir as well
|
||||
lowerdir1=$SCRATCH_DEV/$OVL_LOWER.1
|
||||
lowerdir2=$SCRATCH_DEV/$OVL_LOWER.2
|
||||
upperdir=$SCRATCH_DEV/$OVL_UPPER
|
||||
workdir=$SCRATCH_DEV/$OVL_WORK
|
||||
lowerdir1=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER.1
|
||||
lowerdir2=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER.2
|
||||
upperdir=$OVL_BASE_SCRATCH_MNT/$OVL_UPPER
|
||||
workdir=$OVL_BASE_SCRATCH_MNT/$OVL_WORK
|
||||
mkdir -p $lowerdir1 $lowerdir2 $upperdir $workdir
|
||||
|
||||
# One lowerdir contains test dir and test files, the other contains whiteout
|
||||
@@ -68,7 +68,7 @@ mknod $lowerdir2/testdir/a c 0 0
|
||||
|
||||
# Mount overlayfs and remove testdir, which led to kernel crash
|
||||
_overlay_mount_dirs "$lowerdir2:$lowerdir1" $upperdir $workdir \
|
||||
$SCRATCH_DEV $SCRATCH_MNT
|
||||
$OVL_BASE_SCRATCH_MNT $SCRATCH_MNT
|
||||
rm -rf $SCRATCH_MNT/testdir
|
||||
|
||||
# success, all done
|
||||
|
||||
+3
-3
@@ -58,8 +58,8 @@ _require_attrs
|
||||
_scratch_mkfs
|
||||
|
||||
# Create test dir on upper and make it opaque by setting proper xattr
|
||||
lowerdir=$SCRATCH_DEV/$OVL_LOWER
|
||||
upperdir=$SCRATCH_DEV/$OVL_UPPER
|
||||
lowerdir=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER
|
||||
upperdir=$OVL_BASE_SCRATCH_MNT/$OVL_UPPER
|
||||
mkdir -p $lowerdir/testdir
|
||||
mkdir -p $upperdir/testdir
|
||||
$SETFATTR_PROG -n "trusted.overlay.opaque" -v "y" $upperdir/testdir
|
||||
@@ -68,7 +68,7 @@ $SETFATTR_PROG -n "trusted.overlay.opaque" -v "y" $upperdir/testdir
|
||||
# $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 none $SCRATCH_MNT
|
||||
$MOUNT_PROG -t overlay -o ro -o lowerdir=$upperdir:$lowerdir $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT
|
||||
|
||||
# Dump trusted.overlay xattr, we should not see the "opaque" xattr
|
||||
$GETFATTR_PROG -d -m overlay $SCRATCH_MNT/testdir
|
||||
|
||||
+2
-2
@@ -55,8 +55,8 @@ _require_scratch
|
||||
# remove all files from previous runs
|
||||
_scratch_mkfs
|
||||
|
||||
lowerdir=$SCRATCH_DEV/$OVL_LOWER
|
||||
upperdir=$SCRATCH_DEV/$OVL_UPPER
|
||||
lowerdir=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER
|
||||
upperdir=$OVL_BASE_SCRATCH_MNT/$OVL_UPPER
|
||||
mkdir -p $lowerdir/test
|
||||
|
||||
_scratch_mount
|
||||
|
||||
+2
-2
@@ -54,8 +54,8 @@ _require_test_program "t_truncate_self"
|
||||
_scratch_mkfs
|
||||
|
||||
# copy test program to lower and upper dir
|
||||
lowerdir=$SCRATCH_DEV/$OVL_LOWER
|
||||
upperdir=$SCRATCH_DEV/$OVL_UPPER
|
||||
lowerdir=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER
|
||||
upperdir=$OVL_BASE_SCRATCH_MNT/$OVL_UPPER
|
||||
mkdir -p $lowerdir
|
||||
mkdir -p $upperdir
|
||||
cp $here/src/t_truncate_self $lowerdir/test_lower
|
||||
|
||||
+7
-7
@@ -61,16 +61,16 @@ _require_scratch
|
||||
_scratch_mkfs
|
||||
|
||||
# Create multiple lowerdirs and upperdir, workdir, and testdir on lowerdir
|
||||
lowerdir1=$SCRATCH_DEV/lower1
|
||||
lowerdir2=$SCRATCH_DEV/lower2
|
||||
upperdir=$SCRATCH_DEV/upper
|
||||
workdir=$SCRATCH_DEV/workdir
|
||||
lowerdir1=$OVL_BASE_SCRATCH_MNT/lower1
|
||||
lowerdir2=$OVL_BASE_SCRATCH_MNT/lower2
|
||||
upperdir=$OVL_BASE_SCRATCH_MNT/upper
|
||||
workdir=$OVL_BASE_SCRATCH_MNT/workdir
|
||||
mkdir -p $lowerdir1 $lowerdir2 $upperdir $workdir
|
||||
mkdir -p $lowerdir1/testdir/d
|
||||
|
||||
# mount overlay with $lowerdir2 as upperdir, and remove & recreate testdir,
|
||||
# make testdir on $lowerdir2 opaque
|
||||
_overlay_mount_dirs $lowerdir1 $lowerdir2 $workdir $SCRATCH_DEV $SCRATCH_MNT
|
||||
_overlay_mount_dirs $lowerdir1 $lowerdir2 $workdir $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT
|
||||
rm -rf $SCRATCH_MNT/testdir
|
||||
mkdir -p $SCRATCH_MNT/testdir/visibledir
|
||||
# unmount overlayfs but not base fs
|
||||
@@ -80,14 +80,14 @@ $UMOUNT_PROG $SCRATCH_MNT
|
||||
# and create a new file in testdir, triggers copyup from lowerdir,
|
||||
# copyup should not copy overlayfs private xattr
|
||||
_overlay_mount_dirs "$lowerdir2:$lowerdir1" $upperdir $workdir \
|
||||
$SCRATCH_DEV $SCRATCH_MNT
|
||||
$OVL_BASE_SCRATCH_MNT $SCRATCH_MNT
|
||||
touch $SCRATCH_MNT/testdir/visiblefile
|
||||
|
||||
# umount and mount overlay again, buggy kernel treats the copied-up dir as
|
||||
# opaque, visibledir is not seen in merged dir.
|
||||
$UMOUNT_PROG $SCRATCH_MNT
|
||||
_overlay_mount_dirs "$lowerdir2:$lowerdir1" $upperdir $workdir \
|
||||
$SCRATCH_DEV $SCRATCH_MNT
|
||||
$OVL_BASE_SCRATCH_MNT $SCRATCH_MNT
|
||||
ls $SCRATCH_MNT/testdir
|
||||
|
||||
# success, all done
|
||||
|
||||
+1
-1
@@ -57,7 +57,7 @@ _scratch_mkfs
|
||||
umask 022
|
||||
|
||||
# Create test dir in lower dir and set sgid bit
|
||||
lowerdir=$SCRATCH_DEV/$OVL_LOWER
|
||||
lowerdir=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER
|
||||
mkdir -p $lowerdir/dir
|
||||
chown $qa_user:$qa_group $lowerdir/dir
|
||||
chmod 2775 $lowerdir/dir
|
||||
|
||||
+1
-1
@@ -57,7 +57,7 @@ rm -f $seqres.full
|
||||
_scratch_mkfs >>$seqres.full 2>&1
|
||||
|
||||
# Create our test files.
|
||||
lowerdir=$SCRATCH_DEV/$OVL_LOWER
|
||||
lowerdir=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER
|
||||
mkdir -p $lowerdir
|
||||
echo "This is old news" > $lowerdir/foo
|
||||
echo "This is old news" > $lowerdir/bar
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ _scratch_mkfs >>$seqres.full 2>&1
|
||||
# Not dealing with hardlinks here, because there is more to test
|
||||
# then stable inode number.
|
||||
# Hardlinks will get a test of their own.
|
||||
lowerdir=$SCRATCH_DEV/$OVL_LOWER
|
||||
lowerdir=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER
|
||||
mkdir -p $lowerdir
|
||||
mkdir $lowerdir/dir
|
||||
touch $lowerdir/file
|
||||
|
||||
+1
-1
@@ -55,7 +55,7 @@ rm -f $seqres.full
|
||||
_scratch_mkfs >>$seqres.full 2>&1
|
||||
|
||||
# Create 2 hardlinked files in lower
|
||||
lowerdir=$SCRATCH_DEV/$OVL_LOWER
|
||||
lowerdir=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER
|
||||
mkdir -p $lowerdir
|
||||
echo "patient zero" >> $lowerdir/foo
|
||||
ln $lowerdir/foo $lowerdir/bar
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ _require_scratch
|
||||
# Remove all files from previous tests
|
||||
_scratch_mkfs
|
||||
|
||||
lowerdir=$SCRATCH_DEV/$OVL_LOWER
|
||||
lowerdir=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER
|
||||
mkdir -p $lowerdir
|
||||
|
||||
_scratch_mount
|
||||
|
||||
+1
-1
@@ -55,7 +55,7 @@ _require_scratch
|
||||
# Remove all files from previous tests
|
||||
_scratch_mkfs
|
||||
|
||||
lowerdir=$SCRATCH_DEV/$OVL_LOWER
|
||||
lowerdir=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER
|
||||
mkdir -p $lowerdir/dir
|
||||
|
||||
_scratch_mount
|
||||
|
||||
+3
-3
@@ -54,13 +54,13 @@ _scratch_mkfs
|
||||
|
||||
# overlay copy_up doesn't deal with sparse file well, holes will be filled by
|
||||
# zeros, so for the worst case of hitting all the copy up bomb files, we need
|
||||
# (64*(16+32+64+128)M) free space on $SCRATCH_DEV.
|
||||
# (64*(16+32+64+128)M) free space on $OVL_BASE_SCRATCH_MNT.
|
||||
# However, triggering more than a total of 16 copy up bombs would require
|
||||
# really fast data copy (clone up doesn't take up space at all), so let's be
|
||||
# conservative and reserve space for 16 data copy ups per directory.
|
||||
_require_fs_space $SCRATCH_DEV $((16*(16+32+64+128)*1024))
|
||||
_require_fs_space $OVL_BASE_SCRATCH_MNT $((16*(16+32+64+128)*1024))
|
||||
|
||||
lowerdir=$SCRATCH_DEV/$OVL_LOWER
|
||||
lowerdir=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER
|
||||
mkdir -p $lowerdir
|
||||
|
||||
testdir=arena
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user