summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcheck10
-rw-r--r--common/preamble2
-rw-r--r--common/rc29
-rwxr-xr-xtests/overlay/0093
-rwxr-xr-xtests/overlay/0103
-rwxr-xr-xtests/overlay/0142
-rwxr-xr-xtests/overlay/0164
-rwxr-xr-xtests/overlay/0174
-rwxr-xr-xtests/overlay/0184
-rwxr-xr-xtests/overlay/0203
-rwxr-xr-xtests/overlay/0222
-rwxr-xr-xtests/overlay/0292
-rwxr-xr-xtests/overlay/0382
-rwxr-xr-xtests/overlay/0412
-rwxr-xr-xtests/overlay/0423
-rwxr-xr-xtests/overlay/0434
-rwxr-xr-xtests/overlay/0444
-rwxr-xr-xtests/overlay/0543
-rwxr-xr-xtests/overlay/0553
-rwxr-xr-xtests/overlay/0633
-rwxr-xr-xtests/overlay/0654
-rwxr-xr-xtests/overlay/0673
-rwxr-xr-xtests/overlay/0704
-rwxr-xr-xtests/overlay/0714
-rwxr-xr-xtests/overlay/0722
-rwxr-xr-xtests/overlay/0745
-rwxr-xr-xtests/overlay/0775
-rwxr-xr-xtests/overlay/0781
28 files changed, 111 insertions, 9 deletions
diff --git a/check b/check
index a0863121..de11b37e 100755
--- a/check
+++ b/check
@@ -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
}
diff --git a/common/rc b/common/rc
index eda5fcff..e907e362 100644
--- a/common/rc
+++ b/common/rc
@@ -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