shared/005,7: make sure debugfs sets negative i_size
authorXiao Yang <yangx.jy@cn.fujitsu.com>
Mon, 13 Feb 2017 11:21:50 +0000 (19:21 +0800)
committerEryu Guan <eguan@redhat.com>
Mon, 13 Feb 2017 11:35:47 +0000 (19:35 +0800)
shared/005 and shared/007 work abnornamlly on RHEL6.8GA and
RHEL6.9Beta because debugfs fails to set i_size to -1 or -512
and reports "exceeds field size maximum".  When debugfs fails
to set a negative i_size, we can skip these cases which don't
trigger the kernel bug.

Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
tests/shared/005
tests/shared/007

index 296de178e4284356a12d2bdfb27c1d0de33cf43a..76c551c104a67b63bef672abc899f3107e4acac1 100755 (executable)
@@ -67,6 +67,13 @@ $DEBUGFS_PROG -w -R "sif /a size -1" $SCRATCH_DEV >> $seqres.full 2>&1
 
 echo "Remount, try to append"
 _scratch_mount
+
+# check whether debugfs succeeds to set i_size to -1 or not
+i_size=$(stat -c "%s" $testdir/a)
+if [ $i_size -ne -1 ]; then
+       _notrun "Could not set i_size to -1 successfully, skip test."
+fi
+
 dd if=/dev/zero of=$testdir/a bs=512 count=1 oflag=append conv=notrunc >> $seqres.full 2>&1 || echo "Write did not succeed (ok)."
 sync
 
index 0729ab852243d95888c7016969e166b72232e25e..77636f4011d83fb9fda0b8579ccbbe1653b22560 100755 (executable)
@@ -69,6 +69,13 @@ $DEBUGFS_PROG -w -R "sif /a size 0xFFFFFFFFFFFFFE00" $SCRATCH_DEV >> $seqres.ful
 
 echo "Remount, try to append"
 _scratch_mount
+
+# check whether debugfs succeeds to set i_size to -512 or not
+i_size=$(stat -c "%s" $testdir/a)
+if [ $i_size -ne -512 ]; then
+       _notrun "Could not set i_size to -512 successfully, skip test."
+fi
+
 dd if=/dev/zero of=$testdir/a bs=512 count=1 oflag=direct,append conv=notrunc >> $seqres.full 2>&1 || echo "Write did not succeed (ok)."
 sync