X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fcmd.c;h=3a70d48692917108d8ed1447b6a7a2a409542d3d;hp=ff418e17ee0df63f8a82518db844d500fd879bcb;hb=e7fe706f887aa4d753b102a610f802f7dd816655;hpb=37f1c23617e54ba79c11ff6dc4c4ce7ad07f7be9 diff --git a/src/bin/lttng-sessiond/cmd.c b/src/bin/lttng-sessiond/cmd.c index ff418e17e..3a70d4869 100644 --- a/src/bin/lttng-sessiond/cmd.c +++ b/src/bin/lttng-sessiond/cmd.c @@ -152,6 +152,7 @@ static void list_lttng_channels(int domain, struct ltt_session *session, struct lttng_ht_iter iter; struct ltt_ust_channel *uchan; + rcu_read_lock(); cds_lfht_for_each_entry(session->ust_session->domain_global.channels->ht, &iter.iter, uchan, node.node) { strncpy(channels[i].name, uchan->name, LTTNG_SYMBOL_NAME_LEN); @@ -171,6 +172,7 @@ static void list_lttng_channels(int domain, struct ltt_session *session, } i++; } + rcu_read_unlock(); break; } default: @@ -433,6 +435,8 @@ static int init_kernel_tracing(struct ltt_kernel_session *session) assert(session); + rcu_read_lock(); + if (session->consumer_fds_sent == 0 && session->consumer != NULL) { cds_lfht_for_each_entry(session->consumer->socks->ht, &iter.iter, socket, node.node) { @@ -450,6 +454,7 @@ static int init_kernel_tracing(struct ltt_kernel_session *session) } error: + rcu_read_unlock(); return ret; } @@ -643,6 +648,8 @@ static int setup_relayd(struct ltt_session *session) DBG2("Setting relayd for session %s", session->name); + rcu_read_lock(); + if (usess && usess->consumer && usess->consumer->type == CONSUMER_DST_NET && usess->consumer->enabled) { /* For each consumer socket, send relayd sockets */ @@ -679,6 +686,7 @@ static int setup_relayd(struct ltt_session *session) } error: + rcu_read_unlock(); return ret; }