overlay/031: fix test with inodes index enabled

When overlayfs is configured with CONFIG_OVERLAY_FS_INDEX=y,
workdir from previous overlay mount cannot be reused in a new
overlay mount that uses a different upper dir.

Fix the test to use a different workdir when mounting with a
different upper dir.

This change has no effect on older kernels and overlay
configured without CONFIG_OVERLAY_FS_INDEX.

Cc: zhangyi (F) <yi.zhang@huawei.com>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: zhangyi (F) <yi.zhang@huawei.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit is contained in:
Amir Goldstein
2017-09-19 14:39:44 +03:00
committed by Eryu Guan
parent 5052c432b5
commit a21f34f87f
+16 -7
View File
@@ -43,12 +43,17 @@ _cleanup()
# testfile to create a whiteout in upper dir. # testfile to create a whiteout in upper dir.
create_whiteout() create_whiteout()
{ {
mkdir -p $1/testdir local lower=$1
touch $1/testdir/$4 local upper=$2
local work=$3
local file=$4
_overlay_mount_dirs $1 $2 $3 $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT mkdir -p $lower/testdir
touch $lower/testdir/$file
rm -f $SCRATCH_MNT/testdir/$4 _overlay_mount_dirs $lower $upper $work $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT
rm -f $SCRATCH_MNT/testdir/$file
$UMOUNT_PROG $SCRATCH_MNT $UMOUNT_PROG $SCRATCH_MNT
} }
@@ -72,9 +77,13 @@ lowerdir1=$OVL_BASE_SCRATCH_MNT/lower1
lowerdir2=$OVL_BASE_SCRATCH_MNT/lower2 lowerdir2=$OVL_BASE_SCRATCH_MNT/lower2
upperdir=$OVL_BASE_SCRATCH_MNT/upper upperdir=$OVL_BASE_SCRATCH_MNT/upper
workdir=$OVL_BASE_SCRATCH_MNT/workdir workdir=$OVL_BASE_SCRATCH_MNT/workdir
# When overlay inode index feature is enabled, a workdir cannot be reused
# with a different upperdir. workdir1 in this test is used as the workdir
# when lowerdir1 is used as the upperdir.
workdir1=$OVL_BASE_SCRATCH_MNT/workdir1
testfile1=a testfile1=a
testfile2=b testfile2=b
mkdir -p $lowerdir1 $lowerdir2 $upperdir $workdir mkdir -p $lowerdir1 $lowerdir2 $upperdir $workdir $workdir1
create_whiteout $lowerdir1 $upperdir $workdir $testfile1 create_whiteout $lowerdir1 $upperdir $workdir $testfile1
@@ -108,7 +117,7 @@ $UMOUNT_PROG $SCRATCH_MNT
rm -rf $lowerdir1/testdir rm -rf $lowerdir1/testdir
rm -rf $upperdir/testdir rm -rf $upperdir/testdir
create_whiteout $lowerdir2 $lowerdir1 $workdir $testfile1 create_whiteout $lowerdir2 $lowerdir1 $workdir1 $testfile1
rm -rf $lowerdir2/testdir rm -rf $lowerdir2/testdir
@@ -128,7 +137,7 @@ create_whiteout $lowerdir1 $upperdir $workdir $testfile1
rm -rf $lowerdir1/testdir/$testfile1 rm -rf $lowerdir1/testdir/$testfile1
create_whiteout $lowerdir2 $lowerdir1 $workdir $testfile2 create_whiteout $lowerdir2 $lowerdir1 $workdir1 $testfile2
_overlay_mount_dirs $lowerdir1 $upperdir $workdir $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT _overlay_mount_dirs $lowerdir1 $upperdir $workdir $OVL_BASE_SCRATCH_MNT $SCRATCH_MNT