X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fkernel.c;h=bf1a52171ace5fd378d66a0beae2df458839e87b;hb=2a06df8de565dc46491480d4f2e8d4113492c3de;hp=ddf01044c816f179b668525c5463c60a6f3483c2;hpb=b51ec5b4b698a201dbd081ed5104591db44e38e9;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/kernel.c b/src/bin/lttng-sessiond/kernel.c index ddf01044c..bf1a52171 100644 --- a/src/bin/lttng-sessiond/kernel.c +++ b/src/bin/lttng-sessiond/kernel.c @@ -819,12 +819,12 @@ void kernel_destroy_channel(struct ltt_kernel_channel *kchan) /* * Take a snapshot for a given kernel session. * - * Return 0 on success or else a negative value. + * Return 0 on success or else return a LTTNG_ERR code. */ int kernel_snapshot_record(struct ltt_kernel_session *ksess, struct snapshot_output *output, int wait, unsigned int nb_streams) { - int ret, saved_metadata_fd; + int err, ret, saved_metadata_fd; struct consumer_socket *socket; struct lttng_ht_iter iter; struct ltt_kernel_metadata *saved_metadata; @@ -892,6 +892,8 @@ int kernel_snapshot_record(struct ltt_kernel_session *ksess, DBG3("Kernel snapshot record maximum stream size %" PRIu64 " is smaller than subbuffer size of %" PRIu64, max_size_per_stream, chan->channel->attr.subbuf_size); + (void) kernel_consumer_destroy_metadata(socket, + ksess->metadata); goto error_consumer; } @@ -903,6 +905,8 @@ int kernel_snapshot_record(struct ltt_kernel_session *ksess, pthread_mutex_unlock(socket->lock); if (ret < 0) { ret = LTTNG_ERR_KERN_CONSUMER_FAIL; + (void) kernel_consumer_destroy_metadata(socket, + ksess->metadata); goto error_consumer; } } @@ -927,8 +931,8 @@ int kernel_snapshot_record(struct ltt_kernel_session *ksess, error_consumer: /* Close newly opened metadata stream. It's now on the consumer side. */ - ret = close(ksess->metadata_stream_fd); - if (ret < 0) { + err = close(ksess->metadata_stream_fd); + if (err < 0) { PERROR("close snapshot kernel"); }