]> git-server-git.apps.pok.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
generic/604: Fix for overlayfs
authorAmir Goldstein <amir73il@gmail.com>
Sun, 18 Jun 2023 12:45:06 +0000 (15:45 +0300)
committerZorro Lang <zlang@kernel.org>
Fri, 7 Jul 2023 13:31:20 +0000 (21:31 +0800)
Since v6.3, I noticed that generic/604 does not run on overlayfs
because:

  generic/604 -- upper fs needs to support d_type

This is odd because the base fs I am using (xfs) does support d_type.

The reason is that for overlayfs, this sequence run by this test:

  _scratch_unmount &
  _scratch_mount

Translates to:

  umount $OVL_MNT; umount $BASE_MNT &
  mount $BASE_MNT ...; mount $OVL_MNT ...

Which can end up reordred as:

  umount $OVL_MNT;
  mount $BASE_MNT ...
                  umount $BASE_MNT &
                  mount $OVL_MNT ...

and overlayfs is trying to use a non-existing upper fs.

Use UMOUNT_PROG directly instead of the _scratch_unmount
helper, to avoid unmounting the base fs.

Incidently, the only thing that has changed in overlayfs in v6.3
is idmapped mounts support and the test in question was run without
idmapped mounts enabled, so the cahnge in behavior must be related
to some subtle timing change.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Zorro Lang <zlang@kernel.org>
tests/generic/604

index 9c53fd57846c7bfbe0a73cfdd221fb5acdaa5c9b..cc6a4b214f225505827bf4c234b26756cf00bd72 100755 (executable)
@@ -24,7 +24,9 @@ _scratch_mount
 for i in $(seq 0 500); do
        $XFS_IO_PROG -f -c "pwrite 0 4K" $SCRATCH_MNT/$i >/dev/null
 done
-_scratch_unmount &
+# For overlayfs, avoid unmouting the base fs after _scratch_mount
+# tries to mount the base fs
+$UMOUNT_PROG $SCRATCH_MNT &
 _scratch_mount
 wait