From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: sandeen@redhat.com
Cc: linux-xfs@vger.kernel.org
Subject: [PATCH v2 8/9] xfs_info: call xfs_db for offline filesystems
Date: Tue, 22 May 2018 20:33:39 -0700 [thread overview]
Message-ID: <20180523033339.GL14384@magnolia> (raw)
In-Reply-To: <152401958146.13048.3834702512829151272.stgit@magnolia>
From: Darrick J. Wong <darrick.wong@oracle.com>
If the online filesystem geometry query doesn't work, try using xfs_db
to see if we can grab the information offline.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
---
man/man8/xfs_growfs.8 | 47 +-----------------------
man/man8/xfs_info.8 | 97 +++++++++++++++++++++++++++++++++++++++++++++++++
spaceman/xfs_info.sh | 12 +++++-
3 files changed, 108 insertions(+), 48 deletions(-)
create mode 100644 man/man8/xfs_info.8
diff --git a/man/man8/xfs_growfs.8 b/man/man8/xfs_growfs.8
index e23d30e2..7e6a387c 100644
--- a/man/man8/xfs_growfs.8
+++ b/man/man8/xfs_growfs.8
@@ -11,7 +11,7 @@
.TH xfs_growfs 8
.SH NAME
-xfs_growfs, xfs_info \- expand an XFS filesystem
+xfs_growfs \- expand an XFS filesystem
.SH SYNOPSIS
.B xfs_growfs
[
@@ -38,16 +38,6 @@ xfs_growfs, xfs_info \- expand an XFS filesystem
.I mount-point
.br
.B xfs_growfs \-V
-.PP
-.br
-.B xfs_info
-[
-.B \-t
-.I mtab
-]
-.I mount-point
-.br
-.B xfs_info \-V
.SH DESCRIPTION
.B xfs_growfs
expands an existing XFS filesystem (see
@@ -59,13 +49,6 @@ is mounted. The filesystem must be mounted to be grown (see
.BR mount (8)).
The existing contents of the filesystem are undisturbed, and the added space
becomes available for additional file storage.
-.PP
-.B xfs_info
-is equivalent to invoking
-.B xfs_growfs
-with the
-.B \-n
-option (see discussion below).
.SH OPTIONS
.TP
.BI "\-d | \-D " size
@@ -169,35 +152,9 @@ reside. In order to grow a filesystem, it is necessary to provide added
space for it to occupy. Therefore there must be at least one spare new
disk partition available. Adding the space is often done through the use
of a logical volume manager.
-.SH "EXAMPLES"
-
-Understanding xfs_info output.
-.PP
-Suppose one has the following "xfs_info /dev/sda" output:
-.PP
-.RS 2
-.Vb
-\&meta-data=/dev/sda isize=256 agcount=32, agsize=16777184 blks
-\& = sectsz=512 attr=2
-\&data = bsize=4096 blocks=536869888, imaxpct=5
-\& = sunit=32 swidth=128 blks
-\&naming =version 2 bsize=4096
-\&log =internal bsize=4096 blocks=32768, version=2
-\& = sectsz=512 sunit=32 blks, lazy-count=1
-\&realtime =none extsz=524288 blocks=0, rtextents=0
-.Ve
-.RE
-.PP
-
-Here, the data section of the output indicates "bsize=4096",
-meaning the data block size for this filesystem is 4096 bytes.
-This section also shows "sunit=32 swidth=128 blks", which means
-the stripe unit is 32*4096 bytes = 128 kibibytes and the stripe
-width is 128*4096 bytes = 512 kibibytes.
-A single stripe of this filesystem therefore consists
-of four stripe units (128 blocks / 32 blocks per unit).
.SH SEE ALSO
.BR mkfs.xfs (8),
+.BR xfs_info (8),
.BR md (4),
.BR lvm (8),
.BR mount (8).
diff --git a/man/man8/xfs_info.8 b/man/man8/xfs_info.8
new file mode 100644
index 00000000..429356a8
--- /dev/null
+++ b/man/man8/xfs_info.8
@@ -0,0 +1,97 @@
+.\" Verbatim blocks taken from openssl req manpage content
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+
+.TH xfs_info 8
+.SH NAME
+xfs_info \- display XFS filesystem geometry information
+.SH SYNOPSIS
+.B xfs_info
+[
+.B \-t
+.I mtab
+]
+[
+.I mount-point
+|
+.I block-device
+|
+.I file-image
+]
+.br
+.B xfs_info \-V
+.SH DESCRIPTION
+.B xfs_info
+displays geometry information about an existing XFS filesystem.
+The
+.I mount-point
+argument is the pathname of a directory where the filesystem
+is mounted.
+The
+.I block-device
+or
+.I file-image
+contain a raw XFS filesystem.
+The existing contents of the filesystem are undisturbed.
+.SH OPTIONS
+.TP
+.B \-t
+Specifies an alternate mount table file (default is
+.I /proc/mounts
+if it exists, else
+.IR /etc/mtab ).
+This is used when working with filesystems mounted without writing to
+.I /etc/mtab
+file - refer to
+.BR mount (8)
+for further details.
+This option has no effect with the
+.IR block-device " or " file-image
+parameters.
+.TP
+.B \-V
+Prints the version number and exits. The
+.I mount-point
+argument is not required with
+.BR \-V .
+.SH "EXAMPLES"
+
+Understanding xfs_info output.
+.PP
+Suppose one has the following "xfs_info /dev/sda" output:
+.PP
+.RS 2
+.Vb
+\&meta-data=/dev/pmem0 isize=512 agcount=8, agsize=5974144 blks
+\& = sectsz=512 attr=2, projid32bit=1
+\& = crc=1 finobt=1, sparse=1, rmapbt=1
+\& = reflink=1
+\&data = bsize=4096 blocks=47793152, imaxpct=25
+\& = sunit=32 swidth=128 blks
+\&naming =version 2 bsize=4096 ascii-ci=0, ftype=1
+\&log =internal log bsize=4096 blocks=23336, version=2
+\& = sectsz=512 sunit=0 blks, lazy-count=1
+\&realtime =none extsz=4096 blocks=0, rtextents=0
+.Ve
+.RE
+.PP
+
+Here, the data section of the output indicates "bsize=4096",
+meaning the data block size for this filesystem is 4096 bytes.
+This section also shows "sunit=32 swidth=128 blks", which means
+the stripe unit is 32*4096 bytes = 128 kibibytes and the stripe
+width is 128*4096 bytes = 512 kibibytes.
+A single stripe of this filesystem therefore consists
+of four stripe units (128 blocks / 32 blocks per unit).
+.SH SEE ALSO
+.BR mkfs.xfs (8),
+.BR md (4),
+.BR lvm (8),
+.BR mount (8).
diff --git a/spaceman/xfs_info.sh b/spaceman/xfs_info.sh
index 5df0a265..2e17fd91 100755
--- a/spaceman/xfs_info.sh
+++ b/spaceman/xfs_info.sh
@@ -4,7 +4,7 @@
#
OPTS=""
-USAGE="Usage: xfs_info [-V] [-t mtab] mountpoint"
+USAGE="Usage: xfs_info [-V] [-t mtab] [mountpoint|device|file]"
while getopts "t:V" c
do
@@ -22,8 +22,14 @@ done
set -- extra "$@"
shift $OPTIND
case $# in
- 1) xfs_spaceman -p xfs_info -c "info" $OPTS "$1"
- status=$?
+ 1)
+ if [ -b "$1" ] || [ -f "$1" ]; then
+ xfs_db -p xfs_info -c "info" $OPTS "$1"
+ status=$?
+ else
+ xfs_spaceman -p xfs_info -c "info" $OPTS "$1"
+ status=$?
+ fi
;;
*) echo $USAGE 1>&2
exit 2
next prev parent reply other threads:[~2018-05-23 3:33 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-18 2:45 [PATCH 0/9] xfsprogs-4.17: geometry refactoring Darrick J. Wong
2018-04-18 2:45 ` [PATCH 1/9] libfrog: move platform specific runtime support code out of libxfs Darrick J. Wong
2018-05-03 18:23 ` Eric Sandeen
2018-04-18 2:45 ` [PATCH 2/9] libfrog: refactor fs geometry printing function Darrick J. Wong
2018-05-03 18:47 ` Eric Sandeen
2018-05-03 21:27 ` Eric Sandeen
2018-05-03 21:35 ` Darrick J. Wong
2018-04-18 2:45 ` [PATCH 3/9] mkfs: use geometry generation / helper functions Darrick J. Wong
2018-05-03 18:52 ` Eric Sandeen
2018-04-18 2:45 ` [PATCH 4/9] xfs_db: add a superblock info command Darrick J. Wong
2018-05-03 20:53 ` Eric Sandeen
2018-05-03 21:44 ` Darrick J. Wong
2018-05-23 3:30 ` [PATCH v2 " Darrick J. Wong
2018-05-23 3:57 ` Allison Henderson
2018-04-18 2:46 ` [PATCH 5/9] xfs_spaceman: print a nicer message when the file path isn't on an xfs Darrick J. Wong
2018-05-03 20:57 ` Eric Sandeen
2018-05-23 3:31 ` [PATCH v2 " Darrick J. Wong
2018-05-23 3:58 ` Allison Henderson
2018-04-18 2:46 ` [PATCH 6/9] xfs_spaceman: add a superblock info command Darrick J. Wong
2018-05-03 21:09 ` Eric Sandeen
2018-05-03 21:39 ` Darrick J. Wong
2018-05-08 15:24 ` Darrick J. Wong
2018-05-23 3:32 ` [PATCH v2 " Darrick J. Wong
2018-05-23 4:08 ` Allison Henderson
2018-04-18 2:46 ` [PATCH 7/9] xfs_info: move to xfs_spaceman Darrick J. Wong
2018-05-03 21:17 ` Eric Sandeen
2018-05-03 21:48 ` Darrick J. Wong
2018-04-18 2:46 ` [PATCH 8/9] xfs_info: call xfs_db for offline filesystems Darrick J. Wong
2018-05-03 21:22 ` Eric Sandeen
2018-05-03 21:55 ` Darrick J. Wong
2018-05-23 3:33 ` Darrick J. Wong [this message]
2018-05-23 4:36 ` [PATCH v2 " Allison Henderson
2018-04-18 2:46 ` [PATCH 9/9] xfs_growfs: refactor geometry reporting Darrick J. Wong
2018-05-03 21:25 ` Eric Sandeen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180523033339.GL14384@magnolia \
--to=darrick.wong@oracle.com \
--cc=linux-xfs@vger.kernel.org \
--cc=sandeen@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox