[PATCH v6 1/6] fstests: common: Introduce _post_mount_hook for btrfs

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



Introduce _post_mount_hook(), which will be executed after mounting
scratch/test.

It's quite useful for fs(OK, only btrfs yet, again) which needs to
use ioctl other than mount option to enable some of its feature.

Now only btrfs quota needs this hook to allow enabling quota to be
enabled for *ALL* existing test cases.

This should dramatically improve the test coverage to expose quota
related bugs.

Signed-off-by: Qu Wenruo <quwenruo@xxxxxxxxxxxxxx>
---
 common/rc | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/common/rc b/common/rc
index 23c007a..631397f 100644
--- a/common/rc
+++ b/common/rc
@@ -321,6 +321,27 @@ _overlay_scratch_unmount()
 	$UMOUNT_PROG $SCRATCH_MNT
 }
 
+_run_btrfs_post_mount_hook()
+{
+	mnt_point=$1
+	for n in $ALWAYS_ENABLE_BTRFS_FEATURE; do
+		if [ $n == "quota" -o $n == "qgroup" ]; then
+			# Quota can be enabled for several times
+			# and won't cause bug
+			_run_btrfs_util_prog quota enable $mnt_point
+		fi
+	done
+}
+
+_post_mount_hook()
+{
+	mnt_point=$1
+
+	if [ $FSTYP == "btrfs" -a -v ALWAYS_ENABLE_BTRFS_FEATURE ]; then
+		_run_btrfs_post_mount_hook $mnt_point
+	fi
+}
+
 _scratch_mount()
 {
     if [ "$FSTYP" == "overlay" ]; then
@@ -328,6 +349,7 @@ _scratch_mount()
         return $?
     fi
     _mount -t $FSTYP `_scratch_mount_options $*`
+    _post_mount_hook $SCRATCH_MNT
 }
 
 _scratch_unmount()
@@ -377,6 +399,7 @@ _test_mount()
     fi
     _test_options mount
     _mount -t $FSTYP $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR
+    _post_mount_hook $TEST_DIR
 }
 
 _test_unmount()
-- 
2.7.4



--
To unsubscribe from this list: send the line "unsubscribe fstests" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux