X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fkernel.c;h=53072f97187654dc37db1b6042f8100b375cbb70;hp=955fd3ac27e9de62fac25a1cdce367f001b4c4f5;hb=3b9677124ab48bddc945ca67947c49b87b5853e0;hpb=ecd1a12fac39784bded85c0f06e47ace2dc98cde diff --git a/src/bin/lttng-sessiond/kernel.c b/src/bin/lttng-sessiond/kernel.c index 955fd3ac2..53072f971 100644 --- a/src/bin/lttng-sessiond/kernel.c +++ b/src/bin/lttng-sessiond/kernel.c @@ -1260,6 +1260,7 @@ enum lttng_error_code kernel_snapshot_record( struct consumer_socket *socket; struct lttng_ht_iter iter; struct ltt_kernel_metadata *saved_metadata; + char *trace_path = NULL; assert(ksess); assert(ksess->consumer); @@ -1285,6 +1286,12 @@ enum lttng_error_code kernel_snapshot_record( goto error_open_stream; } + trace_path = setup_channel_trace_path(ksess->consumer, + DEFAULT_KERNEL_TRACE_DIR); + if (!trace_path) { + status = LTTNG_ERR_INVALID; + goto error; + } /* Send metadata to consumer and snapshot everything. */ cds_lfht_for_each_entry(output->socks->ht, &iter.iter, socket, node.node) { @@ -1303,7 +1310,7 @@ enum lttng_error_code kernel_snapshot_record( cds_list_for_each_entry(chan, &ksess->channel_list.head, list) { status = consumer_snapshot_channel(socket, chan->key, output, 0, ksess->uid, ksess->gid, - DEFAULT_KERNEL_TRACE_DIR, wait, + trace_path, wait, nb_packets_per_stream); if (status != LTTNG_OK) { (void) kernel_consumer_destroy_metadata(socket, @@ -1314,8 +1321,7 @@ enum lttng_error_code kernel_snapshot_record( /* Snapshot metadata, */ status = consumer_snapshot_channel(socket, ksess->metadata->key, output, - 1, ksess->uid, ksess->gid, - DEFAULT_KERNEL_TRACE_DIR, wait, 0); + 1, ksess->uid, ksess->gid, trace_path, wait, 0); if (status != LTTNG_OK) { goto error_consumer; } @@ -1341,6 +1347,7 @@ error: ksess->metadata = saved_metadata; ksess->metadata_stream_fd = saved_metadata_fd; rcu_read_unlock(); + free(trace_path); return status; }