X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fkernel-consumer.cpp;fp=src%2Fbin%2Flttng-sessiond%2Fkernel-consumer.cpp;h=b5ccd47dd27ac2947e40b944c3f1ea778fe8f61f;hp=5efe2c2ae146bcfb7e701c300dd8ce555f1db8b2;hb=56047f5a23df5c2c583a102b8015bbec5a7da9f1;hpb=66cefebdc240cbae0bc79594305f509b0779fa98 diff --git a/src/bin/lttng-sessiond/kernel-consumer.cpp b/src/bin/lttng-sessiond/kernel-consumer.cpp index 5efe2c2ae..b5ccd47dd 100644 --- a/src/bin/lttng-sessiond/kernel-consumer.cpp +++ b/src/bin/lttng-sessiond/kernel-consumer.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #include #include @@ -95,6 +96,7 @@ static int kernel_consumer_add_channel(struct consumer_socket *sock, struct lttng_channel_extended *channel_attr_extended; bool is_local_trace; size_t consumer_path_offset = 0; + lttng::urcu::read_lock_guard read_lock; /* Safety net */ LTTNG_ASSERT(channel); @@ -164,7 +166,6 @@ static int kernel_consumer_add_channel(struct consumer_socket *sock, } health_code_update(); - rcu_read_lock(); session = session_find_by_id(ksession->id); LTTNG_ASSERT(session); ASSERT_LOCKED(session->lock); @@ -177,7 +178,6 @@ static int kernel_consumer_add_channel(struct consumer_socket *sock, LTTNG_DOMAIN_KERNEL, channel->channel->attr.subbuf_size * channel->channel->attr.num_subbuf); - rcu_read_unlock(); if (status != LTTNG_OK) { ret = -1; goto error; @@ -206,7 +206,7 @@ int kernel_consumer_add_metadata(struct consumer_socket *sock, struct lttcomm_consumer_msg lkm; struct consumer_output *consumer; - rcu_read_lock(); + lttng::urcu::read_lock_guard read_lock; /* Safety net */ LTTNG_ASSERT(ksession); @@ -262,7 +262,6 @@ int kernel_consumer_add_metadata(struct consumer_socket *sock, health_code_update(); error: - rcu_read_unlock(); return ret; } @@ -361,7 +360,7 @@ int kernel_consumer_send_channel_streams(struct consumer_socket *sock, LTTNG_ASSERT(ksession->consumer); LTTNG_ASSERT(sock); - rcu_read_lock(); + lttng::urcu::read_lock_guard read_lock; /* Bail out if consumer is disabled */ if (!ksession->consumer->enabled) { @@ -394,7 +393,6 @@ int kernel_consumer_send_channel_streams(struct consumer_socket *sock, } error: - rcu_read_unlock(); return ret; }