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
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.
. ./common/rc
# remove previous $seqres.full before test
- rm -f $seqres.full
+ rm -f $seqres.full $seqres.hints
}
_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
# 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
# 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
# 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
#
# 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
# real QA test starts here
_supported_fs overlay
+_fixed_in_kernel_version "v4.19"
+
_require_scratch
_require_xfs_io_command "open"
#
# 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
# 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"
#
# 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
# 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"
# 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
# Modify as appropriate.
_supported_fs overlay
+_fixed_by_kernel_commit 76bc8e2843b6 "ovl: disallow overlayfs as upperdir"
+
_require_scratch
# Remove all files from previous tests
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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"
# 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
# real QA test starts here
_supported_fs overlay
+_fixed_in_kernel_version "v4.17"
+
_require_test
_require_scratch_nocheck
_require_test_program "af_unix"
# 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
# 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
# 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
# real QA test starts here
_supported_fs overlay
+_fixed_in_kernel_version "v5.13"
_require_command "$LSATTR_PROG" lasttr
_require_command "$CHATTR_PROG" chattr