Re: [PATCH 1/2] xfs: refactor calls to xfs_admin

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



On Wed, Feb 05, 2020 at 08:35:05AM +0200, Amir Goldstein wrote:
> On Wed, Feb 5, 2020 at 2:02 AM Darrick J. Wong <darrick.wong@xxxxxxxxxx> wrote:
> >
> > From: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
> >
> > Create a helper to run xfs_admin on the scratch device, then refactor
> > all tests to use it.
> 
> all tests... heh overstatement :)

"all tests that use xfs_admin"?

> Maybe say something about how logdev is needed as argument and
> supported only since recent v5.4 xfsprogs.
> Does older xfsprogs cope well with the extra argument?

Prior to 5.4, xfs_admin will reject the logdev argument and exit; and
if you try to work around it by constructing the xfs_db command by hand,
xfs_db will reject the filesystem because the log device isn't
specified.

IOWs, prior to 5.4 it just plain didn't work at all.

--D

> Thanks,
> Amir.
> 
> >
> > Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
> > ---
> >  common/config |    1 +
> >  common/xfs    |    8 ++++++++
> >  tests/xfs/287 |    2 +-
> >  3 files changed, 10 insertions(+), 1 deletion(-)
> >
> >
> > diff --git a/common/config b/common/config
> > index 9a9c7760..1116cb99 100644
> > --- a/common/config
> > +++ b/common/config
> > @@ -154,6 +154,7 @@ MKSWAP_PROG="$MKSWAP_PROG -f"
> >  export XFS_LOGPRINT_PROG="$(type -P xfs_logprint)"
> >  export XFS_REPAIR_PROG="$(type -P xfs_repair)"
> >  export XFS_DB_PROG="$(type -P xfs_db)"
> > +export XFS_ADMIN_PROG="$(type -P xfs_admin)"
> >  export XFS_GROWFS_PROG=$(type -P xfs_growfs)
> >  export XFS_SPACEMAN_PROG="$(type -P xfs_spaceman)"
> >  export XFS_SCRUB_PROG="$(type -P xfs_scrub)"
> > diff --git a/common/xfs b/common/xfs
> > index 706ddf85..d9a9784f 100644
> > --- a/common/xfs
> > +++ b/common/xfs
> > @@ -218,6 +218,14 @@ _scratch_xfs_db()
> >         $XFS_DB_PROG "$@" $(_scratch_xfs_db_options)
> >  }
> >
> > +_scratch_xfs_admin()
> > +{
> > +       local options=("$SCRATCH_DEV")
> > +       [ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ] && \
> > +               options+=("$SCRATCH_LOGDEV")
> > +       $XFS_ADMIN_PROG "$@" "${options[@]}"
> > +}
> > +
> >  _scratch_xfs_logprint()
> >  {
> >         SCRATCH_OPTIONS=""
> > diff --git a/tests/xfs/287 b/tests/xfs/287
> > index 8dc754a5..f77ed2f1 100755
> > --- a/tests/xfs/287
> > +++ b/tests/xfs/287
> > @@ -70,7 +70,7 @@ $XFS_IO_PROG -r -c "lsproj" $dir/32bit
> >  _scratch_unmount
> >
> >  # Now, enable projid32bit support by xfs_admin
> > -xfs_admin -p $SCRATCH_DEV >> $seqres.full 2>&1 || _fail "xfs_admin failed"
> > +_scratch_xfs_admin -p >> $seqres.full 2>&1 || _fail "xfs_admin failed"
> >
> >  # Now mount the fs, 32bit project quotas shall be supported, now
> >  _qmount_option "pquota"
> >



[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