Quoting zoolook (nbensa+lxcus...@gmail.com): > Hello Serge, > > On Wed, Jul 10, 2013 at 12:09 PM, zoolook <nbensa+lxcus...@gmail.com> wrote: > >>> "lxc-clone -L" accepts size _only_ in B. In other words, ignores G. > >> > >> Yup. You can see the local functions for parsing the fssize in > >> lxc_clone.c and lxc_create.c. Patch to commonize and improve them > >> would be very welcome. > > > > Thanks. I'll take a look when I get back home. > > For now, I copied get_fssize from lxc_create.c to lxc_clone.c (patch > bellow), but my intention is to move the function to utils.c or some > other file and support both SI a binary sizes (GB vs GiB). 2G would be > 2GB (2*1000**3 bytes, current behavior) and 2g would be 2GiB > (2*1024**3). Is this ok for everyone?
That sounds confusing to me, but as long as it's documented in the help and manpage I'm ok with it. Could you please resend this with a signed-off-by, and without the thread (just your description) so I can apply it? You can add: Acked-by: Serge E. Hallyn <serge.hal...@ubuntu.com> thanks, -serge > Thanks! > > --- lxc.orig/lxc-0.9.0.0~staging~20130708-2041/src/lxc/lxc_clone.c > 2013-07-08 17:46:33.000000000 -0300 > +++ lxc.new/lxc-0.9.0.0~staging~20130708-2041/src/lxc/lxc_clone.c > 2013-07-10 23:06:07.156501219 -0300 > @@ -6,6 +6,7 @@ > #include <sys/wait.h> > #include <stdlib.h> > #include <errno.h> > +#include <ctype.h> > > #include "log.h" > #include "config.h" > @@ -16,6 +17,27 @@ > > lxc_log_define(lxc_clone, lxc); > > +static unsigned long get_fssize(char *s) > +{ > + unsigned long ret; > + char *end; > + > + ret = strtoul(s, &end, 0); > + if (end == s) > + return 0; > + while (isblank(*end)) > + end++; > + if (!(*end)) > + return ret; > + if (*end == 'g' || *end == 'G') > + ret *= 1000000000; > + else if (*end == 'm' || *end == 'M') > + ret *= 1000000; > + else if (*end == 'k' || *end == 'K') > + ret *= 1000; > + return ret; > +} > + > void usage(const char *me) > { > printf("Usage: %s [-s] [-B backingstore] [-L size] [-K] [-M] > [-H]\n", me); > @@ -73,7 +95,7 @@ > switch (c) { > case 's': snapshot = 1; break; > case 'B': bdevtype = optarg; break; > - case 'L': newsize = atol(optarg); break; > + case 'L': newsize = get_fssize(optarg); break; > case 'o': orig = optarg; break; > case 'n': new = optarg; break; > case 'v': vgname = optarg; break; ------------------------------------------------------------------------------ See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk _______________________________________________ Lxc-users mailing list Lxc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-users