]> git.proxmox.com Git - mirror_lxc.git/commitdiff
prepare do_start for restart code
authorMichel Normand <normand@fr.ibm.com>
Wed, 26 May 2010 14:54:48 +0000 (16:54 +0200)
committerDaniel Lezcano <dlezcano@fr.ibm.com>
Wed, 26 May 2010 14:54:48 +0000 (16:54 +0200)
In order to be able to use a single 'start' function for start
and restart, let's prepare do_start to get an extra statefile parameter.

Signed-off-by: Michel Normand <normand@fr.ibm.com>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
src/lxc/start.c
src/lxc/start.h

index 1774ec6365d3aefd5f9daa177f5aff64109265aa..604b954b32302c004945b4b72c11826bea277a54 100644 (file)
@@ -411,14 +411,7 @@ void lxc_abort(const char *name, struct lxc_handler *handler)
                kill(handler->pid, SIGKILL);
 }
 
-struct start_arg {
-       const char *name;
-       char *const *argv;
-       struct lxc_handler *handler;
-       int *sv;
-};
-
-static int do_start(void *arg)
+int do_start(void *arg)
 {
        struct start_arg *start_arg = arg;
        struct lxc_handler *handler = start_arg->handler;
@@ -465,6 +458,8 @@ static int do_start(void *arg)
                return -1;
        }
 
+       close(handler->sigfd);
+
        NOTICE("exec'ing '%s'", argv[0]);
 
        execvp(argv[0], argv);
@@ -487,6 +482,7 @@ int lxc_spawn(const char *name, struct lxc_handler *handler, char *const argv[])
        struct start_arg start_arg = {
                .name = name,
                .argv = argv,
+               .sfd = -1,
                .handler = handler,
                .sv = sv,
        };
index e69480a5794b984b4f27b00eda45c098bb96b4a9..dac371dd9aa8fb3f55ae9b535347dfd49ab65d4e 100644 (file)
@@ -38,6 +38,15 @@ struct lxc_handler {
        struct lxc_conf *conf;
 };
 
+struct start_arg {
+       const char *name;
+       struct lxc_handler *handler;
+       int *sv;
+       char *const *argv;
+       int sfd;
+};
+
+extern int do_start(void *arg);
 extern struct lxc_handler *lxc_init(const char *name, struct lxc_conf *);
 extern int lxc_spawn(const char *name, struct lxc_handler *handler,
                     char *const argv[]);