X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fsave.c;h=90b3a3b9c9d025a3e5ffff9fd670e322f9da4e42;hb=22fb211b5ad4d39789f782180a5e610b72a20291;hp=8afdbb5002bcb9a7e0bf8ef1d3871ed6e1c7d300;hpb=e885a3672f53d6063fd9e2d106b341fd9c0b182c;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/save.c b/src/bin/lttng-sessiond/save.c index 8afdbb500..90b3a3b9c 100644 --- a/src/bin/lttng-sessiond/save.c +++ b/src/bin/lttng-sessiond/save.c @@ -670,12 +670,6 @@ int save_kernel_context(struct config_writer *writer, goto end; } - ret = config_writer_open_element(writer, config_element_contexts); - if (ret) { - ret = LTTNG_ERR_SAVE_IO_FAIL; - goto end; - } - ret = config_writer_open_element(writer, config_element_context); if (ret) { ret = LTTNG_ERR_SAVE_IO_FAIL; @@ -741,6 +735,30 @@ int save_kernel_context(struct config_writer *writer, goto end; } +end: + return ret; +} + +static +int save_kernel_contexts(struct config_writer *writer, + struct ltt_kernel_channel *kchan) +{ + int ret; + struct ltt_kernel_context *ctx; + + ret = config_writer_open_element(writer, config_element_contexts); + if (ret) { + ret = LTTNG_ERR_SAVE_IO_FAIL; + goto end; + } + + cds_list_for_each_entry(ctx, &kchan->ctx_list, list) { + ret = save_kernel_context(writer, &ctx->ctx); + if (ret) { + goto end; + } + } + /* /contexts */ ret = config_writer_close_element(writer); if (ret) { @@ -848,7 +866,7 @@ int save_kernel_channel(struct config_writer *writer, goto end; } - ret = save_kernel_context(writer, kchan->ctx); + ret = save_kernel_contexts(writer, kchan); if (ret) { goto end; } @@ -1548,7 +1566,7 @@ int save_session(struct ltt_session *session, goto end; } } else { - ret = config_writer_write_element_signed_int(writer, + ret = config_writer_write_element_unsigned_int(writer, config_element_live_timer_interval, session->live_timer); if (ret) { ret = LTTNG_ERR_SAVE_IO_FAIL;