On Tue, Oct 06, 2015 at 01:00:39PM -0400, Brian Foster wrote: > 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@xxxxxxxxxx> > > --- > > 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? > Well, I understand your question, my point here was to implement the options Dave suggested, but I'm not sure if he had in mind anything else that checking the return value size of -l would not work as -s argument. > 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@xxxxxxxxxxx > > http://oss.sgi.com/mailman/listinfo/xfs -- Carlos _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs