Re: [PATCH 2/3] xfs_io: add inode -l argument to return largest inode number

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux