On Thu, Nov 18, 2010 at 04:14:44PM +1100, Dave Chinner wrote: > On Fri, Nov 12, 2010 at 04:55:05PM -0500, Josef Bacik wrote: > > Obviously this is highly dependant upon my current implementation of hole > > punching via fallocate going in, but this is the support code for falloc to deal > > with hole punching. This is necessary to run the xfstest I have to make sure > > the punching stuff is working properly. Thanks, > > > > Signed-off-by: Josef Bacik <josef@xxxxxxxxxx> > > --- > > io/prealloc.c | 17 ++++++++++++++++- > > 1 files changed, 16 insertions(+), 1 deletions(-) > > > > diff --git a/io/prealloc.c b/io/prealloc.c > > index c8b7df6..4b14da7 100644 > > --- a/io/prealloc.c > > +++ b/io/prealloc.c > > @@ -153,12 +153,23 @@ fallocate_f( > > xfs_flock64_t segment; > > int mode = 0; > > int c; > > + const char *opts; > > > > - while ((c = getopt(argc, argv, "k")) != EOF) { > > +#if defined (FALLOC_FL_PUNCH_HOLE) > > + opts = "kp"; > > +#else > > + opts = "k"; > > +#endif > > + while ((c = getopt(argc, argv, opts)) != EOF) { > > switch (c) { > > case 'k': > > mode = FALLOC_FL_KEEP_SIZE; > > break; > > +#if defined (FALLOC_FL_PUNCH_HOLE) > > + case 'p': > > + mode = FALLOC_FL_PUNCH_HOLE; > > + break; > > +#endif > > default: > > command_usage(&falloc_cmd); > > } > > @@ -236,7 +247,11 @@ prealloc_init(void) > > falloc_cmd.argmin = 2; > > falloc_cmd.argmax = -1; > > falloc_cmd.flags = CMD_NOMAP_OK | CMD_FOREIGN_OK; > > +#if defined (FALLOC_FL_PUNCH_HOLE) > > + falloc_cmd.args = _("[-k] [-p] off len"); > > +#else > > falloc_cmd.args = _("[-k] off len"); > > +#endif > > falloc_cmd.oneline = > > _("allocates space associated with part of a file via fallocate"); > > I'd prefer that there is a separate command for FALLOC_FL_PUNCH_HOLE > rather than a flag that changed the behaviour of the falloc command > completely. This is the way we've done resvsp/unresvsp, so I think > it makes sense to follow this command structure e.g. falloc/fpunch. > Fair enough, I can do that. Thanks, Josef _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs