Fix consumerd fd leak
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 30 Apr 2013 14:25:21 +0000 (10:25 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 30 Apr 2013 14:28:22 +0000 (10:28 -0400)
Refcount is only incremented and owned by thread management for streams,
not metadata.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
src/common/ust-consumer/ust-consumer.c

index 44a8240b055e55dd798e98874f642f1efc72c414..03c00a677ac4f53702dd79c68cc2759b897bdd4f 100644 (file)
@@ -859,13 +859,6 @@ int lttng_ustconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
                        goto end_channel_error;
                }
 
-               /*
-                * Set refcount to 1 for owner. Below, we will pass
-                * ownership to the consumer_thread_channel_poll()
-                * thread.
-                */
-               channel->refcount = 1;
-
                /* Build channel attributes from received message. */
                attr.subbuf_size = msg.u.ask_channel.subbuf_size;
                attr.num_subbuf = msg.u.ask_channel.num_subbuf;
@@ -890,6 +883,12 @@ int lttng_ustconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
                case LTTNG_UST_CHAN_PER_CPU:
                        channel->type = CONSUMER_CHANNEL_TYPE_DATA;
                        attr.type = LTTNG_UST_CHAN_PER_CPU;
+                       /*
+                        * Set refcount to 1 for owner. Below, we will
+                        * pass ownership to the
+                        * consumer_thread_channel_poll() thread.
+                        */
+                       channel->refcount = 1;
                        break;
                case LTTNG_UST_CHAN_METADATA:
                        channel->type = CONSUMER_CHANNEL_TYPE_METADATA;
This page took 0.027394 seconds and 4 git commands to generate.