[PATCH 2/3] xfs_io: add inode -l argument to return largest inode number
Carlos Maiolino
cmaiolino at redhat.com
Wed Oct 7 03:06:28 CDT 2015
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 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?
>
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 at oss.sgi.com
> > http://oss.sgi.com/mailman/listinfo/xfs
--
Carlos
More information about the xfs
mailing list