Use helpers to records and check inode numbers so we can repeat
the same test after each hardlink copy up and mount cycle.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
ln $lowerdir/foo $lowerdir/bar
ln $lowerdir/foo $lowerdir/bar
+# Record inode numbers in format <ino> <nlink>
+function record_ino_nlink()
+{
+ ls -li $FILES | awk '{ print $1, $3 }' > $1
+}
+
+# Check inode numbers match recorded inode numbers
+function check_ino_nlink()
+{
+ before=$1
+ after=$2
+
+ record_ino_nlink $after
+
+ # Test constant stat(2) st_ino/st_nlink -
+ # Compare before..after - expect silence
+ # We use diff -u so out.bad will tell us which stage failed
+ diff -u $before $after
+}
+
-rm -f $tmp.before $tmp.after
foo=$SCRATCH_MNT/foo
bar=$SCRATCH_MNT/bar
foo=$SCRATCH_MNT/foo
bar=$SCRATCH_MNT/bar
-# Record inode number and nlink before copy up
-ls -li $foo $bar | awk '{ print $1, $3 }' > $tmp.before
+FILES="$foo $bar"
+
+record_ino_nlink $tmp.before
# Modify content of one of the hardlinks
echo "mutated" >> $foo
# Modify content of one of the hardlinks
echo "mutated" >> $foo
-# Record inode number and nlink after copy up
-ls -li $foo $bar | awk '{ print $1, $3 }' > $tmp.after
-
-# Compare ino/nlink before..after - expect silence
-diff $tmp.before $tmp.after
+check_ino_nlink $tmp.before $tmp.after
# Compare content of files - expect silence
diff $foo $bar
# Compare content of files - expect silence
diff $foo $bar
015 auto quick whiteout
016 auto quick copyup
017 auto quick copyup
015 auto quick whiteout
016 auto quick copyup
017 auto quick copyup
+018 auto quick copyup hardlink
019 auto stress
020 auto quick copyup perms
021 auto quick copyup
019 auto stress
020 auto quick copyup perms
021 auto quick copyup