Skip to contentSkip to conversation

xfstests: optionally run all tests under quota

PATCH In review Eric Sandeen 4 participants 4 messages Feb 9, 2010 – Nov 5, 2012

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 xfstests: optionally run all tests under quota

This patch might be a little heavy handed, but it seems to work; if you set USE_QUOTA=1 in your environment, all tests should be run with quota on and enabled.

This will hopefully help shake out some of the ext4 quota problems, although one needs to keep an eye on the console to see whether warnings scroll by.

---

common.rc +28 -0
index 6424871..4fde921 100644
@@ -64,6 +64,9 @@ _mount_opts()
     *)
 	;;
     esac
+    if [ ! -z "$USE_QUOTA" ]; then
+	export MOUNT_OPTIONS="$MOUNT_OPTIONS -o usrquota,grpquota"
+    fi
 }
 
 _mkfs_opts()
@@ -161,6 +164,10 @@ _test_options()
     type=$1
     TEST_OPTIONS=""
 
+    if [ ! -z "$USE_QUOTA" ]; then
+	TEST_OPTIONS="-o usrquota,grpquota"
+    fi
+
     if [ "$FSTYP" != "xfs" ]; then
         return
     fi
@@ -202,6 +209,25 @@ _mount_ops_filter()
 
 }
 
+_setup_quota()
+{
+    mountpoint=$1
+    if [ ! -z "$USE_QUOTA" ]; then
+	case $FSTYP in
+	xfs)
+	    ;;
+	ext*|reiserfs)
+	    quotaoff $mountpoint &>/dev/null
+	    quotacheck -u -g $mountpoint
+	    quotaon $mountpoint
+	    ;;
+	*)
+	    _fail "Don't know how to turn on quota on $FSTYP"
+	    ;;
+	esac
+    fi
+}
+
 _scratch_mount_options()
 {
     _scratch_options mount
@@ -212,6 +238,7 @@ _scratch_mount_options()
 _scratch_mount()
 {
     _mount -t $FSTYP `_scratch_mount_options $*`
+    _setup_quota $SCRATCH_MNT
 }
 
 _scratch_unmount()
@@ -229,6 +256,7 @@ _test_mount()
 {
     _test_options mount
     _mount -t $FSTYP $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $* $TEST_DEV $TEST_DIR
+    _setup_quota $TEST_DIR
 }
 
 _scratch_mkfs_options()

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

#1 lore raw
Quoted 3 lines · Eric Sandeen

This patch might be a little heavy handed, but it seems to work; if you set USE_QUOTA=1 in your environment, all tests should be run with quota on and enabled.

I'd rather prefer a -quota option to ./check than a magic environment variable.

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

Reviewed-by on v1 1/1
#2 lore raw
In reply to Eric Sandeen

common.rc

Quoted 17 lines · Eric Sandeen

This patch might be a little heavy handed, but it seems to work; if you set USE_QUOTA=1 in your environment, all tests should be run with quota on and enabled.

This will hopefully help shake out some of the ext4 quota problems, although one needs to keep an eye on the console to see whether warnings scroll by.

---

common.rc +0 -0
index 6424871..4fde921 100644

Looks good

Eric,

This patch has been committed to git://oss.sgi.com/xfs/cmds/xfstests, master branch, commit ID edd6bcf9.

Thanks
--Rich

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

#3 lore raw
Quoted 21 lines · Rich Johnston

common.rc

Quoted 17 lines · Eric Sandeen

This patch might be a little heavy handed, but it seems to work; if you set USE_QUOTA=1 in your environment, all tests should be run with quota on and enabled.

This will hopefully help shake out some of the ext4 quota problems, although one needs to keep an eye on the console to see whether warnings scroll by.

---

common.rc +0 -0
index 6424871..4fde921 100644

Looks good

Quoted 7 lines

Eric,

This patch has been committed to
git://oss.sgi.com/xfs/cmds/xfstests, master branch, commit ID edd6bcf9.

And here's the problem with committing 2 year old patches without review:

$ grep "Can't initialize the DMAPI" [0-9]* | uniq
142.out.bad:Can't initialize the DMAPI
143.out.bad:Can't initialize the DMAPI
144.out.bad:Can't initialize the DMAPI
145.out.bad:Can't initialize the DMAPI
146.out.bad:Can't initialize the DMAPI
147.out.bad:Can't initialize the DMAPI
150.out.bad:Can't initialize the DMAPI
155.out.bad:Can't initialize the DMAPI
156.out.bad:Can't initialize the DMAPI
157.out.bad:Can't initialize the DMAPI
158.out.bad:Can't initialize the DMAPI
161.out.bad:Can't initialize the DMAPI
168.out.bad:Can't initialize the DMAPI
175.out.bad:Can't initialize the DMAPI
176.out.bad:Can't initialize the DMAPI
185.out.bad:Can't initialize the DMAPI

This breaks the dmapi mount error detection, and hence whether dmapi is enabled or not in the kernel. The problem is this:

@@ -251,6 +277,7 @@ _scratch_mount_options()
_scratch_mount()
{
_mount -t $FSTYP _scratch_mount_options $*
+ _setup_quota $SCRATCH_MNT
}

means that callers no longer can check is the mount succeeded or not by looking at the return of _scratch_mount(). Hence this code:

_dmapi_scratch_mount () {
if [ echo "$MOUNT_OPTIONS" | grep -c dmapi -gt 0 -o \
echo "$MOUNT_OPTIONS" | grep -c dmi -gt 0 ] ; then #already got dmapi options set _scratch_mount
dmapi_mount_result=$?
else
_scratch_mount "-o dmapi,mtpt=$SCRATCH_MNT" dmapi_mount_result=$?
fi

if [ $dmapi_mount_result -ne 0 ] ; then
_notrun "Assuming DMAPI modules are not loaded"
fi
}

now fails to detect that mounts fail.

Can we revert this commit for now? If we really need this functionality someone can fix the original patch and re-propose it...

Cheers,

Dave.

Signature · 7 lines
Dave Chinner
[email protected]

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs