Message ID | 161284381548.3057868.17951198536217853244.stgit@magnolia (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | xfs: add the ability to flag a fs for repair | expand |
On Mon, Feb 08, 2021 at 08:10:15PM -0800, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@kernel.org> > > Add a -r option to xfs_admin so that we can pass the name of the > realtime device to xfs_repair. Looks good, Reviewed-by: Christoph Hellwig <hch@lst.de>
On Mon, Feb 08, 2021 at 08:10:15PM -0800, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@kernel.org> > > Add a -r option to xfs_admin so that we can pass the name of the > realtime device to xfs_repair. > > Signed-off-by: Darrick J. Wong <djwong@kernel.org> > --- Reviewed-by: Brian Foster <bfoster@redhat.com> > db/xfs_admin.sh | 11 ++++++----- > man/man8/xfs_admin.8 | 8 ++++++++ > 2 files changed, 14 insertions(+), 5 deletions(-) > > > diff --git a/db/xfs_admin.sh b/db/xfs_admin.sh > index 71a9aa98..430872ef 100755 > --- a/db/xfs_admin.sh > +++ b/db/xfs_admin.sh > @@ -7,9 +7,10 @@ > status=0 > DB_OPTS="" > REPAIR_OPTS="" > -USAGE="Usage: xfs_admin [-efjlpuV] [-c 0|1] [-L label] [-U uuid] device [logdev]" > +REPAIR_DEV_OPTS="" > +USAGE="Usage: xfs_admin [-efjlpuV] [-c 0|1] [-L label] [-r rtdev] [-U uuid] device [logdev]" > > -while getopts "efjlpuc:L:U:V" c > +while getopts "c:efjlL:pr:uU:V" c > do > case $c in > c) REPAIR_OPTS=$REPAIR_OPTS" -c lazycount="$OPTARG;; > @@ -19,6 +20,7 @@ do > l) DB_OPTS=$DB_OPTS" -r -c label";; > L) DB_OPTS=$DB_OPTS" -c 'label "$OPTARG"'";; > p) DB_OPTS=$DB_OPTS" -c 'version projid32bit'";; > + r) REPAIR_DEV_OPTS=" -r '$OPTARG'";; > u) DB_OPTS=$DB_OPTS" -r -c uuid";; > U) DB_OPTS=$DB_OPTS" -c 'uuid "$OPTARG"'";; > V) xfs_db -p xfs_admin -V > @@ -37,8 +39,7 @@ case $# in > # Pick up the log device, if present > if [ -n "$2" ]; then > DB_OPTS=$DB_OPTS" -l '$2'" > - test -n "$REPAIR_OPTS" && \ > - REPAIR_OPTS=$REPAIR_OPTS" -l '$2'" > + REPAIR_DEV_OPTS=$REPAIR_DEV_OPTS" -l '$2'" > fi > > if [ -n "$DB_OPTS" ] > @@ -53,7 +54,7 @@ case $# in > # running xfs_admin. > # Ideally, we need to improve the output behaviour > # of repair for this purpose (say a "quiet" mode). > - eval xfs_repair $REPAIR_OPTS "$1" 2> /dev/null > + eval xfs_repair $REPAIR_DEV_OPTS $REPAIR_OPTS "$1" 2> /dev/null > status=`expr $? + $status` > if [ $status -ne 0 ] > then > diff --git a/man/man8/xfs_admin.8 b/man/man8/xfs_admin.8 > index 8afc873f..cccbb224 100644 > --- a/man/man8/xfs_admin.8 > +++ b/man/man8/xfs_admin.8 > @@ -13,6 +13,9 @@ xfs_admin \- change parameters of an XFS filesystem > ] [ > .B \-U > .I uuid > +] [ > +.B \-r > +.I rtdev > ] > .I device > [ > @@ -123,6 +126,11 @@ not be able to mount the filesystem. To remove this incompatible flag, use > which will restore the original UUID and remove the incompatible > feature flag as needed. > .TP > +.BI \-r " rtdev" > +Specifies the device special file where the filesystem's realtime section > +resides. > +Only for those filesystems which use a realtime section. > +.TP > .B \-V > Prints the version number and exits. > .PP >
diff --git a/db/xfs_admin.sh b/db/xfs_admin.sh index 71a9aa98..430872ef 100755 --- a/db/xfs_admin.sh +++ b/db/xfs_admin.sh @@ -7,9 +7,10 @@ status=0 DB_OPTS="" REPAIR_OPTS="" -USAGE="Usage: xfs_admin [-efjlpuV] [-c 0|1] [-L label] [-U uuid] device [logdev]" +REPAIR_DEV_OPTS="" +USAGE="Usage: xfs_admin [-efjlpuV] [-c 0|1] [-L label] [-r rtdev] [-U uuid] device [logdev]" -while getopts "efjlpuc:L:U:V" c +while getopts "c:efjlL:pr:uU:V" c do case $c in c) REPAIR_OPTS=$REPAIR_OPTS" -c lazycount="$OPTARG;; @@ -19,6 +20,7 @@ do l) DB_OPTS=$DB_OPTS" -r -c label";; L) DB_OPTS=$DB_OPTS" -c 'label "$OPTARG"'";; p) DB_OPTS=$DB_OPTS" -c 'version projid32bit'";; + r) REPAIR_DEV_OPTS=" -r '$OPTARG'";; u) DB_OPTS=$DB_OPTS" -r -c uuid";; U) DB_OPTS=$DB_OPTS" -c 'uuid "$OPTARG"'";; V) xfs_db -p xfs_admin -V @@ -37,8 +39,7 @@ case $# in # Pick up the log device, if present if [ -n "$2" ]; then DB_OPTS=$DB_OPTS" -l '$2'" - test -n "$REPAIR_OPTS" && \ - REPAIR_OPTS=$REPAIR_OPTS" -l '$2'" + REPAIR_DEV_OPTS=$REPAIR_DEV_OPTS" -l '$2'" fi if [ -n "$DB_OPTS" ] @@ -53,7 +54,7 @@ case $# in # running xfs_admin. # Ideally, we need to improve the output behaviour # of repair for this purpose (say a "quiet" mode). - eval xfs_repair $REPAIR_OPTS "$1" 2> /dev/null + eval xfs_repair $REPAIR_DEV_OPTS $REPAIR_OPTS "$1" 2> /dev/null status=`expr $? + $status` if [ $status -ne 0 ] then diff --git a/man/man8/xfs_admin.8 b/man/man8/xfs_admin.8 index 8afc873f..cccbb224 100644 --- a/man/man8/xfs_admin.8 +++ b/man/man8/xfs_admin.8 @@ -13,6 +13,9 @@ xfs_admin \- change parameters of an XFS filesystem ] [ .B \-U .I uuid +] [ +.B \-r +.I rtdev ] .I device [ @@ -123,6 +126,11 @@ not be able to mount the filesystem. To remove this incompatible flag, use which will restore the original UUID and remove the incompatible feature flag as needed. .TP +.BI \-r " rtdev" +Specifies the device special file where the filesystem's realtime section +resides. +Only for those filesystems which use a realtime section. +.TP .B \-V Prints the version number and exits. .PP