overlay: enable the index feature for overlay/hardlink tests
authorAmir Goldstein <amir73il@gmail.com>
Wed, 12 Jul 2017 09:43:25 +0000 (12:43 +0300)
committerEryu Guan <eguan@redhat.com>
Sun, 16 Jul 2017 11:15:15 +0000 (19:15 +0800)
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 <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
tests/overlay/018
tests/overlay/032
tests/overlay/033
tests/overlay/034

index 41855dc34f10d21ed5fa7086643ef9146eb830b2..a4f67d15834da1848e3c1835567b75e87a78ad0a 100755 (executable)
@@ -10,7 +10,7 @@
 #
 #-----------------------------------------------------------------------
 #
-# Copyright (C) 2016 CTERA Networks. All Rights Reserved.
+# Copyright (C) 2016-2017 CTERA Networks. All Rights Reserved.
 # Author: Amir Goldstein <amir73il@gmail.com>
 #
 # 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
index d986ef27dc56b677819a05dfe14016d78746c59e..40dcba9ca2d1ccbde8fc37a3b1af76df02aaf2a0 100755 (executable)
@@ -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()
 {
index 3c21624e9040807d3a053156ef62fbe79b3d2ba5..30780c60126cc694f548a1173f99bf61a4e5386f 100755 (executable)
@@ -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
index 2b4ca735365d94433cc6b0c54a6a98d8908a6238..dc354c6035eb504f9be26360270e60d98396f1b3 100755 (executable)
@@ -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