diff options
-rwxr-xr-x | check | 10 | ||||
-rw-r--r-- | common/preamble | 2 | ||||
-rw-r--r-- | common/rc | 29 | ||||
-rwxr-xr-x | tests/overlay/009 | 3 | ||||
-rwxr-xr-x | tests/overlay/010 | 3 | ||||
-rwxr-xr-x | tests/overlay/014 | 2 | ||||
-rwxr-xr-x | tests/overlay/016 | 4 | ||||
-rwxr-xr-x | tests/overlay/017 | 4 | ||||
-rwxr-xr-x | tests/overlay/018 | 4 | ||||
-rwxr-xr-x | tests/overlay/020 | 3 | ||||
-rwxr-xr-x | tests/overlay/022 | 2 | ||||
-rwxr-xr-x | tests/overlay/029 | 2 | ||||
-rwxr-xr-x | tests/overlay/038 | 2 | ||||
-rwxr-xr-x | tests/overlay/041 | 2 | ||||
-rwxr-xr-x | tests/overlay/042 | 3 | ||||
-rwxr-xr-x | tests/overlay/043 | 4 | ||||
-rwxr-xr-x | tests/overlay/044 | 4 | ||||
-rwxr-xr-x | tests/overlay/054 | 3 | ||||
-rwxr-xr-x | tests/overlay/055 | 3 | ||||
-rwxr-xr-x | tests/overlay/063 | 3 | ||||
-rwxr-xr-x | tests/overlay/065 | 4 | ||||
-rwxr-xr-x | tests/overlay/067 | 3 | ||||
-rwxr-xr-x | tests/overlay/070 | 4 | ||||
-rwxr-xr-x | tests/overlay/071 | 4 | ||||
-rwxr-xr-x | tests/overlay/072 | 2 | ||||
-rwxr-xr-x | tests/overlay/074 | 5 | ||||
-rwxr-xr-x | tests/overlay/077 | 5 | ||||
-rwxr-xr-x | tests/overlay/078 | 1 |
28 files changed, 111 insertions, 9 deletions
@@ -808,7 +808,7 @@ function run_section() fi # really going to try and run this one - rm -f $seqres.out.bad + rm -f $seqres.out.bad $seqres.hints # check if we really should run it _expunge_test $seqnum @@ -942,6 +942,14 @@ function run_section() fi; } | sed -e 's/^\(.\)/ \1/' err=true fi + if [ -f $seqres.hints ]; then + if $err; then + echo + cat $seqres.hints + else + rm -f $seqres.hints + fi + fi done # make sure we record the status of the last test we ran. diff --git a/common/preamble b/common/preamble index 64d79385..68219660 100644 --- a/common/preamble +++ b/common/preamble @@ -79,6 +79,6 @@ _begin_fstest() . ./common/rc # remove previous $seqres.full before test - rm -f $seqres.full + rm -f $seqres.full $seqres.hints } @@ -1610,6 +1610,35 @@ _supported_fs() _notrun "not suitable for this filesystem type: $FSTYP" } +_fixed_in_version() +{ + local pkg=$1 + local ver=$2 + + echo "HINT: You _MAY_ be hit by a known issue on $pkg version < $ver." >> $seqres.hints + echo >> $seqres.hints +} + +_fixed_in_kernel_version() +{ + _fixed_in_version kernel $* +} + +_fixed_by_git_commit() +{ + local pkg=$1 + shift + + echo "HINT: You _MAY_ be missing $pkg fix:" >> $seqres.hints + echo " $*" >> $seqres.hints + echo >> $seqres.hints +} + +_fixed_by_kernel_commit() +{ + _fixed_by_git_commit kernel $* +} + _check_if_dev_already_mounted() { local dev=$1 diff --git a/tests/overlay/009 b/tests/overlay/009 index 94bd1b66..d85ef16e 100755 --- a/tests/overlay/009 +++ b/tests/overlay/009 @@ -17,6 +17,9 @@ _begin_fstest auto quick # real QA test starts here _supported_fs overlay +_fixed_by_kernel_commit a4859d75944a \ + "ovl: fix dentry leak for default_permissions" + _require_scratch # Remove all files from previous tests diff --git a/tests/overlay/010 b/tests/overlay/010 index 71ef6ec1..af22b2b4 100755 --- a/tests/overlay/010 +++ b/tests/overlay/010 @@ -17,6 +17,9 @@ _begin_fstest auto quick whiteout # real QA test starts here _supported_fs overlay +_fixed_by_kernel_commit 84889d493356 \ + "ovl: check dentry positiveness in ovl_cleanup_whiteouts()" + # Use non-default scratch underlying overlay dirs, we need to check # them explicity after test. _require_scratch_nocheck diff --git a/tests/overlay/014 b/tests/overlay/014 index 83295ccc..2d6c11d9 100755 --- a/tests/overlay/014 +++ b/tests/overlay/014 @@ -21,6 +21,8 @@ _begin_fstest auto quick copyup # real QA test starts here _supported_fs overlay +_fixed_by_kernel_commit 0956254a2d5b "ovl: don't copy up opaqueness" + # Use non-default scratch underlying overlay dirs, we need to check # them explicity after test. _require_scratch_nocheck diff --git a/tests/overlay/016 b/tests/overlay/016 index 8a091615..7b4a3dad 100755 --- a/tests/overlay/016 +++ b/tests/overlay/016 @@ -6,7 +6,7 @@ # # Test ro/rw fd data inconsistecies # -# This simple test demonstrates a known issue with overlayfs: +# This simple test demonstrates an issue with overlayfs on kernel < v4.19: # - process A opens file F for read # - process B writes new data to file F # - process A reads old data from file F @@ -19,6 +19,8 @@ _begin_fstest auto quick copyup # real QA test starts here _supported_fs overlay +_fixed_in_kernel_version "v4.19" + _require_scratch _require_xfs_io_command "open" diff --git a/tests/overlay/017 b/tests/overlay/017 index 15b0d613..0bb248c2 100755 --- a/tests/overlay/017 +++ b/tests/overlay/017 @@ -6,7 +6,7 @@ # # Test constant inode numbers # -# This simple test demonstrates a known issue with overlayfs: +# This simple test demonstrates an issue with overlayfs on kernel < v4.14: # - stat file A shows inode number X # - modify A to trigger copy up # - stat file A shows inode number Y != X @@ -23,6 +23,8 @@ _begin_fstest auto quick copyup redirect # real QA test starts here _supported_fs overlay +_fixed_in_kernel_version "v4.14" + _require_scratch _require_test_program "af_unix" _require_test_program "t_dir_type" diff --git a/tests/overlay/018 b/tests/overlay/018 index b09bca9c..4cccbbdc 100755 --- a/tests/overlay/018 +++ b/tests/overlay/018 @@ -6,7 +6,7 @@ # # Test hardlink breakage # -# This simple test demonstrates a known issue with overlayfs: +# This simple test demonstrates an issue with overlayfs on kernel < v4.13: # - file A and B are hardlinked in lower # - modify A to trigger copy up # - file A is no longer a hardlink of file B @@ -19,6 +19,8 @@ _begin_fstest auto quick copyup hardlink # real QA test starts here _supported_fs overlay +_fixed_in_kernel_version "v4.13" + _require_scratch _require_scratch_feature index _require_test_program "t_dir_type" diff --git a/tests/overlay/020 b/tests/overlay/020 index 51f97ccd..98a33aec 100755 --- a/tests/overlay/020 +++ b/tests/overlay/020 @@ -23,6 +23,9 @@ require_unshare() { # Modify as appropriate. _supported_fs overlay +_fixed_by_kernel_commit 3fe6e52f0626 \ + "ovl: override creds with the ones from the superblock mounter" + _require_scratch require_unshare -m -p -U diff --git a/tests/overlay/022 b/tests/overlay/022 index 1a11805d..09af6500 100755 --- a/tests/overlay/022 +++ b/tests/overlay/022 @@ -29,6 +29,8 @@ _cleanup() # Modify as appropriate. _supported_fs overlay +_fixed_by_kernel_commit 76bc8e2843b6 "ovl: disallow overlayfs as upperdir" + _require_scratch # Remove all files from previous tests diff --git a/tests/overlay/029 b/tests/overlay/029 index 1a532c2a..c4c8eed7 100755 --- a/tests/overlay/029 +++ b/tests/overlay/029 @@ -34,6 +34,8 @@ _cleanup() # Modify as appropriate. _supported_fs overlay +_fixed_by_kernel_commit c4fcfc1619ea "ovl: fix d_real() for stacked fs" + _require_scratch # Remove all files from previous tests diff --git a/tests/overlay/038 b/tests/overlay/038 index 145b4b34..19c000ce 100755 --- a/tests/overlay/038 +++ b/tests/overlay/038 @@ -15,6 +15,8 @@ _begin_fstest auto quick copyup # real QA test starts here _supported_fs overlay +_fixed_in_kernel_version "v4.14" + # Use non-default scratch underlying overlay dirs, we need to check # them explicity after test. _require_scratch_nocheck diff --git a/tests/overlay/041 b/tests/overlay/041 index 762e7389..a326b6b0 100755 --- a/tests/overlay/041 +++ b/tests/overlay/041 @@ -17,6 +17,8 @@ _begin_fstest auto quick copyup nonsamefs # real QA test starts here _supported_fs overlay +_fixed_in_kernel_version "v4.17" + # Use non-default scratch underlying overlay dirs, we need to check # them explicity after test. _require_scratch_nocheck diff --git a/tests/overlay/042 b/tests/overlay/042 index 60f4b477..0715066f 100755 --- a/tests/overlay/042 +++ b/tests/overlay/042 @@ -26,6 +26,9 @@ _begin_fstest auto quick copyup hardlink # real QA test starts here _supported_fs overlay +_fixed_by_kernel_commit 6eaf011144af \ + "ovl: fix EIO from lookup of non-indexed upper" + _require_scratch # Without overlay index feature hardlinks are broken on copy up _require_scratch_feature index diff --git a/tests/overlay/043 b/tests/overlay/043 index 383151dd..56f89214 100755 --- a/tests/overlay/043 +++ b/tests/overlay/043 @@ -8,7 +8,7 @@ # This is a variant of overlay/017 to test constant st_ino numbers for # non-samefs setup. # -# This simple test demonstrates a known issue with overlayfs: +# This simple test demonstrates an issue with overlayfs on kernel < v4.17: # - stat file A shows inode number X # - modify A to trigger copy up # - stat file A shows inode number Y != X @@ -25,6 +25,8 @@ _begin_fstest auto quick copyup nonsamefs # real QA test starts here _supported_fs overlay +_fixed_in_kernel_version "v4.17" + # Use non-default scratch underlying overlay dirs, we need to check # them explicity after test. _require_scratch_nocheck diff --git a/tests/overlay/044 b/tests/overlay/044 index 3f54b7ea..3f74890f 100755 --- a/tests/overlay/044 +++ b/tests/overlay/044 @@ -7,7 +7,7 @@ # Test hardlink breakage on non-samefs setup # This is a variant of overlay/018 to test. # -# This simple test demonstrates a known issue with overlayfs: +# This simple test demonstrates an issue with overlayfs on kernel < v4.17: # - file A and B are hardlinked in lower # - modify A to trigger copy up # - file A is no longer a hardlink of file B @@ -20,6 +20,8 @@ _begin_fstest auto quick copyup hardlink nonsamefs # real QA test starts here _supported_fs overlay +_fixed_in_kernel_version "v4.17" + # Use non-default scratch underlying overlay dirs, we need to check # them explicity after test. _require_scratch_nocheck diff --git a/tests/overlay/054 b/tests/overlay/054 index d95427b6..ba20a7fc 100755 --- a/tests/overlay/054 +++ b/tests/overlay/054 @@ -37,6 +37,9 @@ _begin_fstest auto quick copyup redirect exportfs # real QA test starts here _supported_fs overlay +_fixed_by_kernel_commit 2ca3c148a062 \ + "ovl: check lower ancestry on encode of lower dir file handle" + _require_scratch _require_test_program "open_by_handle" # We need to require all features together, because nfs_export cannot diff --git a/tests/overlay/055 b/tests/overlay/055 index 45a3c107..367f038b 100755 --- a/tests/overlay/055 +++ b/tests/overlay/055 @@ -46,6 +46,9 @@ _cleanup() # real QA test starts here _supported_fs overlay +_fixed_by_kernel_commit 2ca3c148a062 \ + "ovl: check lower ancestry on encode of lower dir file handle" + _require_test _require_test_program "open_by_handle" # Use non-default scratch underlying overlay dirs, we need to check diff --git a/tests/overlay/063 b/tests/overlay/063 index 94726000..f7bd46e4 100755 --- a/tests/overlay/063 +++ b/tests/overlay/063 @@ -17,6 +17,9 @@ _begin_fstest auto quick whiteout # real QA test starts here _supported_fs overlay +_fixed_by_kernel_commit 5e1275808630 \ + "ovl: check whiteout in ovl_create_over_whiteout()" + _require_scratch # Remove all files from previous tests diff --git a/tests/overlay/065 b/tests/overlay/065 index 5f3fe097..e1bed4c7 100755 --- a/tests/overlay/065 +++ b/tests/overlay/065 @@ -38,6 +38,10 @@ _cleanup() # real QA test starts here _supported_fs overlay +_fixed_in_kernel_version "v5.2" +_fixed_by_kernel_commit 0be0bfd2de9d \ + "ovl: fix regression caused by overlapping layers detection" + # Use non-default scratch underlying overlay dirs, we need to check # them explicity after test. _require_scratch_nocheck diff --git a/tests/overlay/067 b/tests/overlay/067 index 7dddb265..3f54a418 100755 --- a/tests/overlay/067 +++ b/tests/overlay/067 @@ -20,6 +20,9 @@ _begin_fstest auto quick copyup nonsamefs # real QA test starts here _supported_fs overlay +_fixed_by_kernel_commit 9c6d8f13e9da \ + "ovl: fix corner case of non-unique st_dev;st_ino" + # Use non-default scratch underlying overlay dirs, we need to check # them explicity after test. _require_scratch_nocheck diff --git a/tests/overlay/070 b/tests/overlay/070 index d433279a..a4ec2f03 100755 --- a/tests/overlay/070 +++ b/tests/overlay/070 @@ -8,7 +8,7 @@ # nested overlay setup, where all layers of both overlays are on the # same fs. # -# This simple test demonstrates a known issue with overlayfs: +# This simple test demonstrates an issue with overlayfs on kernel < v4.17: # - stat file A shows inode number X # - modify A to trigger copy up # - stat file A shows inode number Y != X @@ -35,6 +35,8 @@ _cleanup() # real QA test starts here _supported_fs overlay +_fixed_in_kernel_version "v4.17" + _require_scratch_nocheck _require_test_program "af_unix" _require_test_program "t_dir_type" diff --git a/tests/overlay/071 b/tests/overlay/071 index 2ef28369..c22e3880 100755 --- a/tests/overlay/071 +++ b/tests/overlay/071 @@ -7,7 +7,7 @@ # This is a variant of overlay/017 to test constant st_ino numbers for # nested overlay setup, where lower overlay layers are not on the same fs. # -# This simple test demonstrates a known issue with overlayfs: +# This simple test demonstrates an issue with overlayfs on kernel < v4.17: # - stat file A shows inode number X # - modify A to trigger copy up # - stat file A shows inode number Y != X @@ -38,6 +38,8 @@ _cleanup() # real QA test starts here _supported_fs overlay +_fixed_in_kernel_version "v4.17" + _require_test _require_scratch_nocheck _require_test_program "af_unix" diff --git a/tests/overlay/072 b/tests/overlay/072 index bdb608ff..6f5e77df 100755 --- a/tests/overlay/072 +++ b/tests/overlay/072 @@ -28,6 +28,8 @@ _begin_fstest auto quick copyup hardlink # real QA test starts here _supported_fs overlay +_fixed_by_kernel_commit 83552eacdfc0 "ovl: fix WARN_ON nlink drop to zero" + _require_scratch upperdir=$OVL_BASE_SCRATCH_MNT/$OVL_UPPER diff --git a/tests/overlay/074 b/tests/overlay/074 index 833e7919..d3738649 100755 --- a/tests/overlay/074 +++ b/tests/overlay/074 @@ -22,6 +22,11 @@ _begin_fstest auto quick exportfs dangerous # real QA test starts here _supported_fs overlay +_fixed_by_kernel_commit 144da23beab8 \ + "ovl: return required buffer size for file handles" +_fixed_by_kernel_commit 9aafc1b01873 \ + "ovl: potential crash in ovl_fid_to_fh()" + _require_scratch _require_test_program "open_by_handle" # We need to require all features together, because nfs_export cannot diff --git a/tests/overlay/077 b/tests/overlay/077 index d22a1a94..702ff54c 100755 --- a/tests/overlay/077 +++ b/tests/overlay/077 @@ -18,6 +18,11 @@ _begin_fstest auto quick dir # real QA test starts here _supported_fs overlay +_fixed_by_kernel_commit 65cd913ec9d9 \ + "ovl: invalidate readdir cache on changes to dir with origin" +_fixed_by_kernel_commit 9011c2791e63 \ + "ovl: skip stale entries in merge dir cache iteration" + _require_scratch_nocheck # Use small getdents bufsize to fit less than 10 entries diff --git a/tests/overlay/078 b/tests/overlay/078 index 9e9be03f..3c15f4b7 100755 --- a/tests/overlay/078 +++ b/tests/overlay/078 @@ -33,6 +33,7 @@ _cleanup() # real QA test starts here _supported_fs overlay +_fixed_in_kernel_version "v5.13" _require_command "$LSATTR_PROG" lasttr _require_command "$CHATTR_PROG" chattr |