Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP1:GA
xfsprogs.17980
xfsprogs-xfs_db-add-a-superblock-info-command.p...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File xfsprogs-xfs_db-add-a-superblock-info-command.patch of Package xfsprogs.17980
From 172793ee2646150534546af9394ecd9cee3035c1 Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" <darrick.wong@oracle.com> Date: Wed, 23 May 2018 16:30:48 -0500 Subject: [PATCH] xfs_db: add a superblock info command Git-commit: 172793ee2646150534546af9394ecd9cee3035c1 Patch-mainline: v4.17.0-rc1 References: bsc#1129859 Add an 'info' command to pretty-print the superblock geometry. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Allison Henderson <allison.henderson@oracle.com> Signed-off-by: Eric Sandeen <sandeen@sandeen.net> Acked-by: Anthony Iliopoulos <ailiopoulos@suse.com> --- db/Makefile | 2 +- db/command.c | 1 + db/command.h | 1 + db/info.c | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ man/man8/xfs_db.8 | 8 ++++++ 5 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 db/info.c diff --git a/db/Makefile b/db/Makefile index 6caa634..c73d7f2 100644 --- a/db/Makefile +++ b/db/Makefile @@ -14,7 +14,7 @@ HFILES = addr.h agf.h agfl.h agi.h attr.h attrshort.h bit.h block.h bmap.h \ io.h logformat.h malloc.h metadump.h output.h print.h quit.h sb.h \ sig.h strvec.h text.h type.h write.h attrset.h symlink.h fsmap.h \ fuzz.h -CFILES = $(HFILES:.h=.c) btdump.c +CFILES = $(HFILES:.h=.c) btdump.c info.c LSRCFILES = xfs_admin.sh xfs_ncheck.sh xfs_metadump.sh LLDLIBS = $(LIBXFS) $(LIBXLOG) $(LIBFROG) $(LIBUUID) $(LIBRT) $(LIBPTHREAD) diff --git a/db/command.c b/db/command.c index 5ff3c4f..89f24b1 100644 --- a/db/command.c +++ b/db/command.c @@ -136,6 +136,7 @@ init_commands(void) fsmap_init(); help_init(); hash_init(); + info_init(); inode_init(); input_init(); logformat_init(); diff --git a/db/command.h b/db/command.h index 9b4ed2d..84cd0b1 100644 --- a/db/command.h +++ b/db/command.h @@ -41,3 +41,4 @@ extern const cmdinfo_t *find_command(const char *cmd); extern void init_commands(void); extern void btdump_init(void); +extern void info_init(void); diff --git a/db/info.c b/db/info.c new file mode 100644 index 0000000..05b3c1f --- /dev/null +++ b/db/info.c @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2018 Oracle. All Rights Reserved. + * + * Author: Darrick J. Wong <darrick.wong@oracle.com> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it would be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + */ +#include "libxfs.h" +#include "command.h" +#include "init.h" +#include "output.h" +#include "fsgeom.h" + +static void +info_help(void) +{ + dbprintf(_( +"\n" +" Pretty-prints the filesystem geometry as derived from the superblock.\n" +" The output has the same format as mkfs.xfs, xfs_info, and other utilities.\n" +"\n" +)); + +} + +static int +info_f( + int argc, + char **argv) +{ + struct xfs_fsop_geom geo; + int error; + + error = -libxfs_fs_geometry(&mp->m_sb, &geo, + XFS_FS_GEOM_MAX_STRUCT_VER); + if (error) { + dbprintf(_("could not obtain geometry\n")); + exitcode = 1; + return 0; + } + + xfs_report_geom(&geo, fsdevice, x.logname, x.rtname); + return 0; +} + +static const struct cmdinfo info_cmd = { + .name = "info", + .altname = "i", + .cfunc = info_f, + .argmin = 0, + .argmax = 0, + .canpush = 0, + .args = NULL, + .oneline = N_("pretty-print superblock info"), + .help = info_help, +}; + +void +info_init(void) +{ + add_command(&info_cmd); +} diff --git a/man/man8/xfs_db.8 b/man/man8/xfs_db.8 index 37018a7..1f5d954 100644 --- a/man/man8/xfs_db.8 +++ b/man/man8/xfs_db.8 @@ -670,6 +670,14 @@ using the hash function of the XFS directory and attribute implementation. .BI "help [" command ] Print help for one or all commands. .TP +.B info +Displays selected geometry information about the filesystem. +The output will have the same format that +.BR "mkfs.xfs" "(8)" +prints when creating a filesystem or +.BR "xfs_info" "(8)" +prints when querying a filesystem. +.TP .BI "inode [" inode# ] Set the current inode number. If no .I inode# -- 2.16.4
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor