On Fri, Jul 15, 2016 at 10:01:29AM +1000, Dave Chinner wrote:
> On Tue, Jul 05, 2016 at 01:39:13PM +0800, Eryu Guan wrote:
> > In recent mkfs.xfs updates in xfsprogs, commit 9090e187bc3e ("mkfs:
> > add respecification detection to generic parsing") added
> > re-specification detection to "-m" option, it causes several tests
> > _notrun if MKFS_OPTIONS has the same options as those being tested
> > in _scratch_mkfs_xfs_supported(), because they're specified multiple
> > times.
> >
> > MKFS_OPTIONS="-m crc=0" ./check xfs/001
> > xfs/001 3s ... [not run] mkfs.xfs doesn't have crc feature
> >
> > Fix it by creating XFS again without MKFS_OPTIONS in
> > _scratch_mkfs_xfs_supported(), in case there's conflict between
> > MKFS_OPTIONS and mkfs_opts, like what we do in _scratch_mkfs_xfs().
> >
> > Signed-off-by: Eryu Guan <eguan@xxxxxxxxxx>
> > ---
> > common/rc | 11 ++++++++++-
> > 1 file changed, 10 insertions(+), 1 deletion(-)
> >
> > diff --git a/common/rc b/common/rc
> > index 883bd7b..ad81461 100644
> > --- a/common/rc
> > +++ b/common/rc
> > @@ -473,11 +473,20 @@ _scratch_mkfs_xfs_opts()
> >
> > _scratch_mkfs_xfs_supported()
> > {
> > - mkfs_opts=$*
> > + local mkfs_opts=$*
> >
> > _scratch_options mkfs
> >
> > $MKFS_XFS_PROG -N $MKFS_OPTIONS $SCRATCH_OPTIONS $mkfs_opts $SCRATCH_DEV
> > + local mkfs_status=$?
> > +
> > + # if $mkfs_opts conflits with $MKFS_OPTIONS,
> > + # try again without $MKFS_OPTIONS
> > + if [ $mkfs_status -ne 0 -a -n "$MKFS_OPTIONS" ]; then
> > + $MKFS_XFS_PROG -N $SCRATCH_OPTIONS $mkfs_opts $SCRATCH_DEV
> > + mkfs_status=$?
> > + fi
> > + return $mkfs_status
> > }
>
>
> This should match what _scratch_mkfs_xfs does. i.e:
>
> # a mkfs failure may be caused by conflicts between
> # $MKFS_OPTIONS and $extra_mkfs_options
> if [ $mkfs_status -ne 0 -a ! -z "$extra_mkfs_options" ]; then
> (
> echo -n "** mkfs failed with extra mkfs options "
> echo "added to \"$MKFS_OPTIONS\" by test $seq **"
> echo -n "** attempting to mkfs using only test $seq "
> echo "options: $extra_mkfs_options **"
> ) >> $seqres.full
>
> # running mkfs again. overwrite previous mkfs output files
> _scratch_mkfs_xfs_opts $extra_mkfs_options \
> 2>$tmp_dir.mkfserr 1>$tmp_dir.mkfsstd
> local mkfs_status=$?
> fi
>
> i.e. it checks if $extra_mkfs_options is not empty, rather than
> $MKFS_OPTIONS
Thanks for the review!
I thought about it too, but I realized that _scratch_mkfs_supported() is
supposed to have "$extra_mkfs_options" (always non-empty), because what
it tests is to check whether mkfs.xfs works well with these
"$extra_mkfs_options".
But making sure $mkfs_opts is not empty before using it makes more
sense, and it matches _scratch_mkfs_xfs(). I'll send v2 patch.
Thanks,
Eryu
|