From patchwork Thu Mar 1 19:14:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Darrick J. Wong" X-Patchwork-Id: 10252253 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 71923604D4 for ; Thu, 1 Mar 2018 19:14:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5F8E827E01 for ; Thu, 1 Mar 2018 19:14:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 542C928534; Thu, 1 Mar 2018 19:14:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8A01E27E01 for ; Thu, 1 Mar 2018 19:14:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161241AbeCATOo (ORCPT ); Thu, 1 Mar 2018 14:14:44 -0500 Received: from userp2120.oracle.com ([156.151.31.85]:38898 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1161242AbeCATOn (ORCPT ); Thu, 1 Mar 2018 14:14:43 -0500 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w21JCjTq130767; Thu, 1 Mar 2018 19:14:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : from : to : cc : date : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding; s=corp-2017-10-26; bh=dWhVldMLIarsTgqAMaRa6K3whhv/rWHf980ix3lQTx8=; b=LdNsApKwvwKBjbKXUcO15ZJAEoPKAJPPDE9w+qxc6yJBN0C7xGsFt9q471CpncS9U1Xw MjJfDktZ36yhl09kUYDr5KznIJJsoZkr9kTLT56g9YJHyk6R6Slb4AL3jXYfhuQuXNBW S5gY36fs0FJm4aNLUquZtKbBdZDviiylAjNon+6baLjAjvQJkEOK3q8sQ0fO+Bakda1y Sj65fqRJn6ouw2KJ5jWHE+JHjjF38p1+6/+V6z9ZtouHPGyidw+qlunpUDjeYVKFUmVb MbownL4RZ5TMEv1JblLkUK9Fh9Tx7DgCVRR1Rs0+rxNrdbSnP9BuxmP/t0Ffk6MS4c4T Vw== Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by userp2120.oracle.com with ESMTP id 2genp38mmv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 01 Mar 2018 19:14:40 +0000 Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by userv0021.oracle.com (8.14.4/8.14.4) with ESMTP id w21JEdOk008329 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 1 Mar 2018 19:14:39 GMT Received: from abhmp0019.oracle.com (abhmp0019.oracle.com [141.146.116.25]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id w21JEdTh007482; Thu, 1 Mar 2018 19:14:39 GMT Received: from localhost (/67.169.218.210) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 01 Mar 2018 11:14:38 -0800 Subject: [PATCH 15/16] xfs_info: call xfs_db for offline filesystems From: "Darrick J. Wong" To: sandeen@redhat.com, darrick.wong@oracle.com Cc: linux-xfs@vger.kernel.org, djwong@kernel.org Date: Thu, 01 Mar 2018 11:14:38 -0800 Message-ID: <151993167797.22223.1002851265800487377.stgit@magnolia> In-Reply-To: <151993157539.22223.6269629008244777191.stgit@magnolia> References: <151993157539.22223.6269629008244777191.stgit@magnolia> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8819 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1803010237 Sender: linux-xfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Darrick J. Wong 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 --- man/man8/xfs_growfs.8 | 47 +----------------------- man/man8/xfs_info.8 | 95 +++++++++++++++++++++++++++++++++++++++++++++++++ spaceman/xfs_info.sh | 12 +++++- 3 files changed, 106 insertions(+), 48 deletions(-) create mode 100644 man/man8/xfs_info.8 -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/man/man8/xfs_growfs.8 b/man/man8/xfs_growfs.8 index e23d30e..7e6a387 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 0000000..c4c470d --- /dev/null +++ b/man/man8/xfs_info.8 @@ -0,0 +1,95 @@ +.\" 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/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 log 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 md (4), +.BR lvm (8), +.BR mount (8). diff --git a/spaceman/xfs_info.sh b/spaceman/xfs_info.sh index 5df0a26..2e17fd9 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