diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 518064e..36e72cf 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -974,7 +974,7 @@ int libxl_create_device_model(struct libxl_ctx *ctx, rc = libxl_spawn_spawn(ctx, p, "device model", dm_xenstore_record_pid); if (rc < 0) goto xit; if (!rc) { /* inner child */ - libxl_exec(ctx, null, logfile_w, logfile_w, + libxl_exec(null, logfile_w, logfile_w, info->device_model, args); } @@ -1118,7 +1118,7 @@ int libxl_device_disk_add(struct libxl_ctx *ctx, uint32_t domid, libxl_device_di null_r = open("/dev/null", O_RDONLY); null_w = open("/dev/null", O_WRONLY); - libxl_exec(ctx, null_r, p[1], null_w, "/usr/sbin/tapdisk2", args); + libxl_exec(null_r, p[1], null_w, "/usr/sbin/tapdisk2", args); XL_LOG(ctx, XL_LOG_ERROR, "Error execing tapdisk2"); } close(p[1]); diff --git a/tools/libxl/libxl_exec.c b/tools/libxl/libxl_exec.c index 1588a1f..011ed84 100644 --- a/tools/libxl/libxl_exec.c +++ b/tools/libxl/libxl_exec.c @@ -48,8 +48,7 @@ static int call_waitpid(pid_t (*waitpid_cb)(pid_t, int *, int), pid_t pid, int * return (waitpid_cb) ? waitpid_cb(pid, status, options) : waitpid(pid, status, options); } -void libxl_exec(struct libxl_ctx *ctx, int stdinfd, int stdoutfd, int stderrfd, - char *arg0, char **args) +void libxl_exec(int stdinfd, int stdoutfd, int stderrfd, char *arg0, char **args) /* call this in the child */ { int i; @@ -63,7 +62,6 @@ void libxl_exec(struct libxl_ctx *ctx, int stdinfd, int stdoutfd, int stderrfd, for (i = 4; i < 256; i++) close(i); execv(arg0, args); - XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "exec %s failed", arg0); _exit(-1); } diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h index 44e97d1..14952ca 100644 --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -203,8 +203,7 @@ int libxl_spawn_check(struct libxl_ctx *ctx, /* low-level stuff, for synchronous subprocesses etc. */ -void libxl_exec(struct libxl_ctx *ctx, int stdinfd, int stdoutfd, int stderrfd, - char *arg0, char **args); // logs errors, never returns +void libxl_exec(int stdinfd, int stdoutfd, int stderrfd, char *arg0, char **args); // logs errors, never returns void libxl_log_child_exitstatus(struct libxl_ctx *ctx, const char *what, pid_t pid, int status);