]> www.infradead.org Git - users/hch/xfstests-dev.git/commitdiff
overlay/084: Fix test to match new xwhiteouts dir on-disk format
authorAmir Goldstein <amir73il@gmail.com>
Sat, 3 Feb 2024 08:12:28 +0000 (10:12 +0200)
committerZorro Lang <zlang@kernel.org>
Fri, 9 Feb 2024 05:27:17 +0000 (13:27 +0800)
The xwhiteouts feature, which is tested in this test, was added to
overlayfs in kernel v6.7.

The on-disk format of the xwhiteouts directory was changed in kernel
v6.8-rc2, specfically by commit 420332b94119 ("ovl: mark xwhiteouts
directory with overlay.opaque='x'") and backported to kernel v6.7.3,
so this test now fails on kernel >= v6.8-rc2 and => v6.7.3.

Adapt the test to the new on-disk format and add a hint to make sure
that the on-disk format change is backported to v6.7 based kernels.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Acked-by: Alexander Larsson <alexl@redhat.com>
Reviewed-by: Zorro Lang <zlang@redhat.com>
Signed-off-by: Zorro Lang <zlang@kernel.org>
tests/overlay/084

index 8465caeb267a5899ae15ef5cc52fea9e0105643d..778396a10b3dad18bba7ea9c4f49151bd31ba74e 100755 (executable)
@@ -25,6 +25,11 @@ _cleanup()
 
 # real QA test starts here
 _supported_fs overlay
+# This test does not run on kernels prior ro v6.7 and now it will also make sure
+# that the following on-disk format change was backported to v6.7 based kernels
+_fixed_by_kernel_commit 420332b94119 \
+       "ovl: mark xwhiteouts directory with overlay.opaque='x'"
+
 # We use non-default scratch underlying overlay dirs, we need to check
 # them explicity after test.
 _require_scratch_nocheck
@@ -115,7 +120,8 @@ do_test_xwhiteout()
 
        mkdir -p $basedir/lower $basedir/upper $basedir/work
        touch $basedir/lower/regular $basedir/lower/hidden  $basedir/upper/hidden
-       setfattr -n $prefix.overlay.whiteouts -v "y" $basedir/upper
+       # overlay.opaque="x" means directory has xwhiteout children
+       setfattr -n $prefix.overlay.opaque -v "x" $basedir/upper
        setfattr -n $prefix.overlay.whiteout -v "y" $basedir/upper/hidden
 
        # Test the hidden is invisible