From: Amir Goldstein Date: Wed, 12 Jul 2017 09:43:25 +0000 (+0300) Subject: overlay: enable the index feature for overlay/hardlink tests X-Git-Tag: v2022.05.01~1965 X-Git-Url: http://git.apps.os.sepia.ceph.com/?p=xfstests-dev.git;a=commitdiff_plain;h=29e399dae8cdd93888225c14816811c8554957f1 overlay: enable the index feature for overlay/hardlink tests Overlayfs hardlink test are expected to fail if overlayfs does not support the inodes index feature, so don't un them if kernel does not support the feature. If the feature is supported, enable it with the index=on mount option for the hardlink tests, regardless of the build time default determined by kernel config option CONFIG_OVERLAY_FS_INDEX. Signed-off-by: Amir Goldstein Reviewed-by: Eryu Guan Signed-off-by: Eryu Guan --- diff --git a/tests/overlay/018 b/tests/overlay/018 index 41855dc3..a4f67d15 100755 --- a/tests/overlay/018 +++ b/tests/overlay/018 @@ -10,7 +10,7 @@ # #----------------------------------------------------------------------- # -# Copyright (C) 2016 CTERA Networks. All Rights Reserved. +# Copyright (C) 2016-2017 CTERA Networks. All Rights Reserved. # Author: Amir Goldstein # # This program is free software; you can redistribute it and/or @@ -49,6 +49,7 @@ _cleanup() _supported_fs overlay _supported_os Linux _require_scratch +_require_scratch_feature index rm -f $seqres.full @@ -81,7 +82,8 @@ function check_ino_nlink() diff -u $before $after } -_scratch_mount +# Enable overlay index feature to prevent breaking hardlinks on copy up +_scratch_mount -o index=on rm -f $tmp.* @@ -105,7 +107,7 @@ cat $FILES check_ino_nlink $tmp.before $tmp.after_one # Verify that the hardlinks survive a mount cycle -_scratch_cycle_mount +_scratch_cycle_mount index=on echo "== After mount cycle ==" cat $FILES diff --git a/tests/overlay/032 b/tests/overlay/032 index d986ef27..40dcba9c 100755 --- a/tests/overlay/032 +++ b/tests/overlay/032 @@ -53,6 +53,7 @@ rm -f $seqres.full _supported_fs overlay _supported_os Linux _require_scratch +_require_scratch_feature index # Remove all files from previous tests _scratch_mkfs @@ -71,7 +72,8 @@ $XFS_IO_PROG -fc "pwrite 1g 4k" $lowerdir/zero >> $seqres.full ln $lowerdir/zero $lowerdir/one ln $lowerdir/zero $lowerdir/two -_scratch_mount +# Enable overlay index feature to prevent breaking hardlinks on copy up +_scratch_mount -o index=on do_cmd() { diff --git a/tests/overlay/033 b/tests/overlay/033 index 3c21624e..30780c60 100755 --- a/tests/overlay/033 +++ b/tests/overlay/033 @@ -50,6 +50,7 @@ rm -f $seqres.full _supported_fs overlay _supported_os Linux _require_scratch +_require_scratch_feature index report_nlink() { @@ -122,7 +123,7 @@ test_hardlinks() rm $SCRATCH_MNT/2 # Verify that orphan index is cleaned when dropping nlink to zero - ls $OVL_BASE_SCRATCH_MNT/$OVL_WORK/index 2>/dev/null + ls $OVL_BASE_SCRATCH_MNT/$OVL_WORK/index } # Remove all files from previous tests @@ -131,7 +132,8 @@ _scratch_mkfs # Create lower hardlinks create_hardlinks -_scratch_mount +# Enable overlay index feature to prevent breaking hardlinks on copy up +_scratch_mount -o index=on # Test hardlinks with warm dcache DCACHETEMP=warm test_hardlinks @@ -140,7 +142,7 @@ test_hardlinks _scratch_unmount _scratch_mkfs create_hardlinks -_scratch_mount +_scratch_mount -o index=on # Test hardlinks with cold dcache DCACHETEMP=cold diff --git a/tests/overlay/034 b/tests/overlay/034 index 2b4ca735..dc354c60 100755 --- a/tests/overlay/034 +++ b/tests/overlay/034 @@ -64,6 +64,8 @@ rm -f $seqres.full _supported_fs overlay _supported_os Linux _require_scratch +# Without overlay index feature hardlinks are broken on copy up +_require_scratch_feature index # Remove all files from previous tests _scratch_mkfs @@ -74,7 +76,8 @@ mkdir -p $lowerdir touch $lowerdir/0 ln $lowerdir/0 $lowerdir/1 -_scratch_mount +# Enable overlay index feature to prevent breaking hardlinks on copy up +_scratch_mount -o index=on # Copy up lower hardlink - overlay inode nlink 2 is copied from lower touch $SCRATCH_MNT/0 @@ -99,8 +102,8 @@ rm $SCRATCH_MNT/1 rm $SCRATCH_MNT/4 # Verify that orphan index is cleaned on mount -_scratch_cycle_mount -ls $OVL_BASE_SCRATCH_MNT/$OVL_WORK/index 2>/dev/null +_scratch_cycle_mount index=on +ls $OVL_BASE_SCRATCH_MNT/$OVL_WORK/index echo "Silence is golden" status=0