From e2912397b568ee27d465ae8525e672889f3fd49f Mon Sep 17 00:00:00 2001 From: Pavel Emelyanov Date: Mon, 8 Oct 2012 19:56:12 +0400 Subject: [PATCH] log: Set log level in parasite Signed-off-by: Pavel Emelyanov --- include/parasite.h | 6 +++++- parasite-syscall.c | 5 ++++- parasite.c | 7 ++++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/include/parasite.h b/include/parasite.h index 0f77d61e1..33e2de986 100644 --- a/include/parasite.h +++ b/include/parasite.h @@ -19,7 +19,7 @@ enum { PARASITE_CMD_INIT, - PARASITE_CMD_SET_LOGFD, + PARASITE_CMD_CFG_LOG, PARASITE_CMD_FINI, PARASITE_CMD_DUMPPAGES_INIT, @@ -44,6 +44,10 @@ struct parasite_init_args { struct sockaddr_un p_addr; }; +struct parasite_log_args { + int log_level; +}; + struct parasite_dump_pages_args { VmaEntry vma_entry; unsigned long nrpages_dumped; /* how many pages are dumped */ diff --git a/parasite-syscall.c b/parasite-syscall.c index 4bde79abd..73b84355a 100644 --- a/parasite-syscall.c +++ b/parasite-syscall.c @@ -360,12 +360,15 @@ static int parasite_prep_file(int fd, struct parasite_ctl *ctl) static int parasite_set_logfd(struct parasite_ctl *ctl, pid_t pid) { int ret; + struct parasite_log_args a; ret = parasite_send_fd(ctl, log_get_fd()); if (ret) return ret; - ret = parasite_execute(PARASITE_CMD_SET_LOGFD, ctl, NULL, 0); + a.log_level = log_get_loglevel(); + + ret = parasite_execute(PARASITE_CMD_CFG_LOG, ctl, &a, sizeof(a)); if (ret < 0) return ret; diff --git a/parasite.c b/parasite.c index 37d17010d..4eecf3d95 100644 --- a/parasite.c +++ b/parasite.c @@ -419,13 +419,14 @@ out_send_fd: return ret; } -static int parasite_set_logfd() +static int parasite_cfg_log(struct parasite_log_args *args) { int ret; ret = recv_fd(tsock); if (ret >= 0) { log_set_fd(ret); + log_set_loglevel(args->log_level); ret = 0; } @@ -459,8 +460,8 @@ int __used parasite_service(unsigned int cmd, void *args) return init((struct parasite_init_args *) args); case PARASITE_CMD_FINI: return fini(); - case PARASITE_CMD_SET_LOGFD: - return parasite_set_logfd(); + case PARASITE_CMD_CFG_LOG: + return parasite_cfg_log((struct parasite_log_args *) args); case PARASITE_CMD_DUMPPAGES_INIT: return dump_pages_init(); case PARASITE_CMD_DUMPPAGES_FINI: