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.

-- 
Dan Smith
IBM Linux Technology Center
email: [email protected]

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 <[email protected]>
Acked-by: Serge Hallyn <[email protected]>

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;
 
_______________________________________________
Containers mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to