X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fkernel.c;h=fc817b2db304187675a38e1c5d8904658fe670a5;hp=19a325da1f1421b27c73bfb7866ae5204b87ca7b;hb=e098433c90550d74288498f8c4474ef4c2daea68;hpb=3e25d926e1c03011c68430e3a358d1e9a10ca9ab diff --git a/src/bin/lttng-sessiond/kernel.c b/src/bin/lttng-sessiond/kernel.c index 19a325da1..fc817b2db 100644 --- a/src/bin/lttng-sessiond/kernel.c +++ b/src/bin/lttng-sessiond/kernel.c @@ -990,6 +990,8 @@ int kernel_snapshot_record(struct ltt_kernel_session *ksess, struct consumer_socket *socket; struct lttng_ht_iter iter; struct ltt_kernel_metadata *saved_metadata; + struct ltt_session *session; + uint64_t trace_archive_id; assert(ksess); assert(ksess->consumer); @@ -997,6 +999,12 @@ int kernel_snapshot_record(struct ltt_kernel_session *ksess, DBG("Kernel snapshot record started"); + session = session_find_by_id(ksess->id); + assert(session); + assert(pthread_mutex_trylock(&session->lock)); + assert(session_trylock_list()); + trace_archive_id = session->current_archive_id; + /* Save current metadata since the following calls will change it. */ saved_metadata = ksess->metadata; saved_metadata_fd = ksess->metadata_stream_fd; @@ -1044,7 +1052,8 @@ int kernel_snapshot_record(struct ltt_kernel_session *ksess, ret = consumer_snapshot_channel(socket, chan->key, output, 0, ksess->uid, ksess->gid, DEFAULT_KERNEL_TRACE_DIR, wait, - nb_packets_per_stream); + nb_packets_per_stream, + trace_archive_id); if (ret < 0) { ret = LTTNG_ERR_KERN_CONSUMER_FAIL; (void) kernel_consumer_destroy_metadata(socket, @@ -1056,7 +1065,8 @@ int kernel_snapshot_record(struct ltt_kernel_session *ksess, /* Snapshot metadata, */ ret = consumer_snapshot_channel(socket, ksess->metadata->key, output, 1, ksess->uid, ksess->gid, - DEFAULT_KERNEL_TRACE_DIR, wait, 0); + DEFAULT_KERNEL_TRACE_DIR, wait, 0, + trace_archive_id); if (ret < 0) { ret = LTTNG_ERR_KERN_CONSUMER_FAIL; goto error_consumer;