From fc25b815fd27f5510aaefd88c620a6dfb90100d1 Mon Sep 17 00:00:00 2001 From: Michel Normand Date: Wed, 26 May 2010 16:54:48 +0200 Subject: [PATCH] prepare do_start for restart code 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 Signed-off-by: Daniel Lezcano --- src/lxc/start.c | 12 ++++-------- src/lxc/start.h | 9 +++++++++ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/lxc/start.c b/src/lxc/start.c index 1774ec636..604b954b3 100644 --- a/src/lxc/start.c +++ b/src/lxc/start.c @@ -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, }; diff --git a/src/lxc/start.h b/src/lxc/start.h index e69480a57..dac371dd9 100644 --- a/src/lxc/start.h +++ b/src/lxc/start.h @@ -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[]);