From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Serge E. Hallyn" Subject: Re: [PATCH] Add --nonetns switch to user-cr checkpoint Date: Wed, 31 Mar 2010 10:20:15 -0500 Message-ID: <20100331152015.GA12522@us.ibm.com> References: <1270046482-16053-1-git-send-email-danms@us.ibm.com> <20100331145740.GA11124@us.ibm.com> <87634ced9n.fsf@caffeine.danplanet.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <87634ced9n.fsf-FLMGYpZoEPULwtHQx/6qkW3U47Q5hpJU@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Dan Smith Cc: containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org List-Id: containers.vger.kernel.org Quoting Dan Smith (danms-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org): > SH> Also, args does get memset to 0 before parse_args() gets called so > SH> you don't need to set args->flag to 0 there. > > I wanted it to be really, really zeroed. :) Looks great. thanks, -serge > -- > Dan Smith > IBM Linux Technology Center > email: danms-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org > > Add --nonetns switch to user-cr checkpoint (v2) > > This allows the caller to set the CHECKPOINT_NONETNS flag on the checkpoint > operation, thus skipping the checkpointing of network namespaces entirely. > > Changes in v2: > - Allow -N for --nonetns > - Remove extra flags initialization > > Signed-off-by: Dan Smith > Acked-by: Serge Hallyn > > diff --git a/app-checkpoint.h b/app-checkpoint.h > index f740085..c078f04 100644 > --- a/app-checkpoint.h > +++ b/app-checkpoint.h > @@ -5,6 +5,7 @@ struct app_checkpoint_args { > int uerrfd; > int container; > int verbose; > + int flags; > }; > > struct app_restart_args { > diff --git a/checkpoint-main.c b/checkpoint-main.c > index f6faa32..85b4133 100644 > --- a/checkpoint-main.c > +++ b/checkpoint-main.c > @@ -30,6 +30,7 @@ static char usage_str[] = > " -l,--logfile=FILE write error and debug data to FILE (default=none)\n" > " --logile-fd=FD write error and debug data to file descriptor FD\n" > " -c,--container require the PID is a container-init\n" > +" -N,--nonetns do not checkpoint network namespace(s)\n" > " -v,--verbose verbose output\n" > ""; > > @@ -61,9 +62,10 @@ static void parse_args(struct app_checkpoint_args *args, int argc, char *argv[]) > { "logfile-fd", required_argument, NULL, 2 }, > { "container", no_argument, NULL, 'c' }, > { "verbose", no_argument, NULL, 'v' }, > + { "nonetns", no_argument, NULL, 'N' }, > { NULL, 0, NULL, 0 } > }; > - static char optc[] = "hvco:l:"; > + static char optc[] = "hvco:l:N"; > char *output; > char *logfile; > > @@ -109,6 +111,9 @@ static void parse_args(struct app_checkpoint_args *args, int argc, char *argv[]) > case 'v': > args->verbose = 1; > break; > + case 'N': > + args->flags |= CHECKPOINT_NONETNS; > + break; > default: > usage(usage_str); > } > @@ -164,6 +169,7 @@ int main(int argc, char *argv[]) > exit(1); > } > > + flags = args.flags; > if (!args.container) > flags |= CHECKPOINT_SUBTREE;