From f724d81e402a1eb319ce0392c5b6770787a28edc Mon Sep 17 00:00:00 2001 From: David Goulet Date: Wed, 3 Oct 2012 11:14:50 -0400 Subject: [PATCH] Fix: Add missing call rcu and read side lock Acked-by: Mathieu Desnoyers Signed-off-by: David Goulet --- src/common/consumer.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/common/consumer.c b/src/common/consumer.c index f01eb5d06..b55fd153d 100644 --- a/src/common/consumer.c +++ b/src/common/consumer.c @@ -1516,9 +1516,7 @@ int lttng_consumer_recv_cmd(struct lttng_consumer_local_data *ctx, } /* - * Iterate over all stream element of the hashtable and free them. This is race - * free since the hashtable received MUST be in a race free synchronization - * state. It's the caller responsability to make sure of that. + * Iterate over all streams of the hashtable and free them properly. */ static void destroy_stream_ht(struct lttng_ht *ht) { @@ -1535,7 +1533,7 @@ static void destroy_stream_ht(struct lttng_ht *ht) ret = lttng_ht_del(ht, &iter); assert(!ret); - free(stream); + call_rcu(&stream->node.head, consumer_free_stream); } rcu_read_unlock(); @@ -1635,7 +1633,7 @@ static void consumer_del_metadata_stream(struct lttng_consumer_stream *stream) consumer_del_channel(stream->chan); } - free(stream); + call_rcu(&stream->node.head, consumer_free_stream); } /* -- 2.34.1