[PATCH 4/5] xfstests: sync before umount to avoid device busy problems
tmarek at redhat.com
tmarek at redhat.com
Fri Apr 13 04:49:45 CDT 2012
From: Tom Marek <tmarek at redhat.com>
Some tests might fail because of 'device or resource busy' when unmounting
either the SCRATCH or the TEST device. The reason this happenes is that
some processes might not have time to finish properly, or they are still
waiting for IO. The sync command was added before unmount into
_scratch_unmount() and umount_or_remount_ro which should help processes to
finish before unmounting takes place and thus it solves the problem.
This fixes for example tests 226 and 247.
Test 226 uses plain umount command which suffers from exactly the same problem
as described above. Use fixed _scratch_unmount() instead of plain umount fixes
this problem.
Signed-off-by: Tom Marek <tmarek at redhat.com>
Reviewed-by: Lukas Czerner <lczerner at redhat.com>
---
226 | 4 ++--
common.rc | 5 +++++
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/226 b/226
index 6f28ac9..f8847c6 100755
--- a/226
+++ b/226
@@ -61,7 +61,7 @@ for I in `seq 1 $loops`; do
done
echo
-umount $SCRATCH_DEV
+_scratch_unmount
_scratch_mount
echo "--> $loops direct 64m writes in a loop"
@@ -73,7 +73,7 @@ for I in `seq 1 $loops`; do
done
echo
-umount $SCRATCH_DEV
+_scratch_unmount
status=0
exit
diff --git a/common.rc b/common.rc
index cab0b64..e56e5bc 100644
--- a/common.rc
+++ b/common.rc
@@ -255,6 +255,8 @@ _scratch_mount()
_scratch_unmount()
{
+ # Run sync to give processes some time to finish before unmount
+ sync
$UMOUNT_PROG $SCRATCH_DEV
}
@@ -1051,6 +1053,9 @@ _umount_or_remount_ro()
device=$1
mountpoint=`_is_mounted $device`
+ # Run sync to give processes some time to finish before unmount
+ sync
+
if [ $USE_REMOUNT -eq 0 ]; then
$UMOUNT_PROG $device
else
--
1.7.7.6
More information about the xfs
mailing list