[PATCH 2/3] xfs_io: add inode -l argument to return largest inode number
Brian Foster
bfoster at redhat.com
Tue Oct 6 12:00:39 CDT 2015
On Fri, Sep 25, 2015 at 03:07:46PM +0200, Carlos Maiolino wrote:
> Implements '-l' argument in inode command, returning to the user, the largest
> inode allocated and used in the filesystem.
>
> Signed-off-by: Carlos Maiolino <cmaiolino at redhat.com>
> ---
> io/open.c | 18 +++++++++++++-----
> 1 file changed, 13 insertions(+), 5 deletions(-)
>
> diff --git a/io/open.c b/io/open.c
> index 6a794ba..57ff0bf 100644
> --- a/io/open.c
> +++ b/io/open.c
> @@ -759,6 +759,7 @@ inode_help(void)
> "\n"
> "Query physical information about the inode"
> "\n"
> +" -l -- Returns the largest inode number in the filesystem\n"
> " -s -- Returns the physical size (in bits) of the\n"
> " largest inode number in the filesystem\n"
> "\n"));
> @@ -777,23 +778,27 @@ inode_f(
> struct xfs_fsop_bulkreq bulkreq;
> int c;
> int ret_lsize = 0;
> + int ret_largest = 0;
>
> bulkreq.lastip = &last;
> bulkreq.icount = 1024; /* maybe an user-defined value!? */
> bulkreq.ubuffer = &igroup;
> bulkreq.ocount = &count;
>
> - while ((c = getopt(argc, argv, "s")) != EOF) {
> + while ((c = getopt(argc, argv, "sl")) != EOF) {
> switch (c) {
> case 's':
> ret_lsize = 1;
> break;
> + case 'l':
> + ret_largest = 1;
> + break;
> default:
> return command_usage(&inode_cmd);
> }
> }
>
> - if (ret_lsize) {
> + if (ret_lsize || ret_largest) {
> for (;;) {
> if (xfsctl(file->name, file->fd, XFS_IOC_FSINUMBERS,
> &bulkreq)) {
> @@ -811,8 +816,11 @@ inode_f(
> lastino = igroup[lastgrp].xi_startino +
> xfs_highbit64(igroup[lastgrp].xi_allocmask);
>
> - printf (_("Largest inode size: %d\n"),
> - lastino > XFS_MAXINUMBER_32 ? 64 : 32);
> + if (ret_lsize)
> + printf (_("Largest inode size: %d\n"),
> + lastino > XFS_MAXINUMBER_32 ? 64 : 32);
> + else
> + printf(_("Largest inode: %llu\n"), lastino);
Hmm, do we need the -s option if we have -l to print the actual largest
inode number?
Brian
>
> }
>
> @@ -887,7 +895,7 @@ open_init(void)
>
> inode_cmd.name = "inode";
> inode_cmd.cfunc = inode_f;
> - inode_cmd.args = _("[-s]");
> + inode_cmd.args = _("[-s | -l]");
> inode_cmd.argmin = 1;
> inode_cmd.argmax = 1;
> inode_cmd.flags = CMD_NOMAP_OK;
> --
> 2.4.3
>
> _______________________________________________
> xfs mailing list
> xfs at oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
More information about the xfs
mailing list