generic/506: mount scratch fs before testing for prjquota presence
[xfstests-dev.git] / common / quota
index 9309e786bca4432637cb030dd73e46cd5154933e..659c6219541149613e655737a11926bd529f70c2 100644 (file)
@@ -12,7 +12,7 @@ _require_quota()
     [ -n "$QUOTA_PROG" ] || _notrun "Quota user tools not installed"
 
     case $FSTYP in
-    ext2|ext3|ext4|ext4dev|reiserfs)
+    ext2|ext3|ext4|ext4dev|f2fs|reiserfs)
        if [ ! -d /proc/sys/fs/quota ]; then
            _notrun "Installed kernel does not support quotas"
        fi
@@ -68,7 +68,8 @@ _require_xfs_quota_foreign()
 }
 
 #
-# checks that the project quota support in the kernel is enabled.
+# Checks that the project quota support in the kernel is enabled.
+# The device must be mounted for detection to work properly.
 #
 _require_prjquota()
 {
@@ -80,14 +81,18 @@ _require_prjquota()
     if [ "$FSTYP" == "f2fs" ]; then
        dump.f2fs $_dev 2>&1 | grep -qw project_quota
        [ $? -ne 0 ] && _notrun "Project quota not enabled in this device $_dev"
+       dump.f2fs $_dev 2>&1 | grep -qw quota_ino
+       [ $? -ne 0 ] && _notrun "quota sysfile not enabled in this device $_dev"
        cat /sys/fs/f2fs/features/project_quota | grep -qw supported
        [ $? -ne 0 ] && _notrun "Installed kernel does not support project quotas"
        return
     fi
     src/feature -P $_dev
     [ $? -ne 0 ] && _notrun "Installed kernel does not support project quotas"
-    if [ "$USE_EXTERNAL" = yes -a ! -z "$_dev" ]; then
-       _notrun "Project quotas not supported on realtime filesystem"
+    if [ "$USE_EXTERNAL" = yes ]; then
+       if [ -n "$TEST_RTDEV" -o -n "$SCRATCH_RTDEV" ]; then
+           _notrun "Project quotas not supported on realtime filesystem"
+       fi
     fi
 }
 
@@ -255,7 +260,7 @@ _check_quota_usage()
 
        VFS_QUOTA=0
        case $FSTYP in
-       ext2|ext3|ext4|ext4dev|reiserfs|gfs2)
+       ext2|ext3|ext4|ext4dev|f2fs|reiserfs|gfs2)
                VFS_QUOTA=1
                quotaon -f -u -g $SCRATCH_MNT 2>/dev/null
                ;;