2010-02-09 19:26:35

by Eric Sandeen

[permalink] [raw]
Subject: [PATCH] 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.

Signed-off-by: Eric Sandeen <[email protected]>
---

diff --git a/common.rc b/common.rc
index 6424871..4fde921 100644
--- a/common.rc
+++ b/common.rc
@@ -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()



2010-02-09 22:04:44

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] xfstests: optionally run all tests under quota

On Tue, Feb 09, 2010 at 01:26:31PM -0600, Eric Sandeen wrote:
> 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.


2012-10-26 16:47:41

by Rich Johnston

[permalink] [raw]
Subject: Re: xfstests: optionally run all tests under quota

On 02/09/2010 01:26 PM, Eric Sandeen wrote:
> 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.
>
> Signed-off-by: Eric Sandeen <[email protected]>
>
> ---
>
>
> diff --git a/common.rc b/common.rc
> index 6424871..4fde921 100644
> --- a/common.rc
> +++ b/common.rc

Looks good

Reviewed-by: Rich Johnston <[email protected]>

Eric,

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


Thanks
--Rich

2012-11-05 09:56:46

by Dave Chinner

[permalink] [raw]
Subject: Re: xfstests: optionally run all tests under quota

On Fri, Oct 26, 2012 at 11:49:18AM -0500, Rich Johnston wrote:
> On 02/09/2010 01:26 PM, Eric Sandeen wrote:
> >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.
> >
> >Signed-off-by: Eric Sandeen <[email protected]>
> >
> >---
> >
> >
> >diff --git a/common.rc b/common.rc
> >index 6424871..4fde921 100644
> >--- a/common.rc
> >+++ b/common.rc
>
> Looks good
>
> Reviewed-by: Rich Johnston <[email protected]>
>
> 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.
--
Dave Chinner
[email protected]