X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fsave.c;h=d231fb24f9f9339577b077157661a1dcae975679;hb=a6f54a11424f11338194551a01fdbe2723302051;hp=d268f33190698d6f9bd920a5bbdbab140a377d70;hpb=14ce5bd8eefa248c5abedc32b02394ef74307e81;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/save.c b/src/bin/lttng-sessiond/save.c index d268f3319..d231fb24f 100644 --- a/src/bin/lttng-sessiond/save.c +++ b/src/bin/lttng-sessiond/save.c @@ -801,6 +801,11 @@ int save_kernel_contexts(struct config_writer *writer, int ret; struct ltt_kernel_context *ctx; + if (cds_list_empty(&kchan->ctx_list)) { + ret = 0; + goto end; + } + ret = config_writer_open_element(writer, config_element_contexts); if (ret) { ret = LTTNG_ERR_SAVE_IO_FAIL; @@ -1218,6 +1223,8 @@ int save_domains(struct config_writer *writer, struct ltt_session *session) } if (session->ust_session) { + unsigned long agent_count; + ret = config_writer_open_element(writer, config_element_domain); if (ret) { @@ -1236,30 +1243,37 @@ int save_domains(struct config_writer *writer, struct ltt_session *session) ret = LTTNG_ERR_SAVE_IO_FAIL; goto end; } - } - if (session->ust_session && - lttng_ht_get_count(session->ust_session->agents) > 0) { - ret = config_writer_open_element(writer, - config_element_domain); - if (ret) { - ret = LTTNG_ERR_SAVE_IO_FAIL; - goto end; - } + rcu_read_lock(); + agent_count = + lttng_ht_get_count(session->ust_session->agents); + rcu_read_unlock(); - ret = save_ust_session(writer, session, 1); - if (ret) { - goto end; - } + if (agent_count > 0) { + ret = config_writer_open_element(writer, + config_element_domain); + if (ret) { + ret = LTTNG_ERR_SAVE_IO_FAIL; + goto end; + } - /* /domain */ - ret = config_writer_close_element(writer); - if (ret) { - ret = LTTNG_ERR_SAVE_IO_FAIL; - goto end; + ret = save_ust_session(writer, session, 1); + if (ret) { + goto end; + } + + /* /domain */ + ret = config_writer_close_element(writer); + if (ret) { + ret = LTTNG_ERR_SAVE_IO_FAIL; + goto end; + } } } + if (session->ust_session) { + } + /* /domains */ ret = config_writer_close_element(writer); if (ret) {