X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fkernel.c;h=cedb9346cea81d29fc8eb547bbcbe769c337cc38;hb=b2543b2047a84638b3c8eb8bb7babdc8824c0a94;hp=edb7f7b2f2f3f83efd53ac077f005b26388d52d9;hpb=9a6545985844978f34f88b82bf1bcd649968c0a3;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/kernel.c b/src/bin/lttng-sessiond/kernel.c index edb7f7b2f..cedb9346c 100644 --- a/src/bin/lttng-sessiond/kernel.c +++ b/src/bin/lttng-sessiond/kernel.c @@ -125,6 +125,26 @@ int kernel_create_session(struct ltt_session *session, int tracer_fd) DBG("Kernel session created (fd: %d)", lks->fd); + /* + * This is necessary since the creation time is present in the session + * name when it is generated. + */ + if (session->has_auto_generated_name) { + ret = kernctl_session_set_name(lks->fd, DEFAULT_SESSION_NAME); + } else { + ret = kernctl_session_set_name(lks->fd, session->name); + } + if (ret) { + WARN("Could not set kernel session name for session %" PRIu64 " name: %s", + session->id, session->name); + } + + ret = kernctl_session_set_creation_time(lks->fd, session->creation_time); + if (ret) { + WARN("Could not set kernel session creation time for session %" PRIu64 " name: %s", + session->id, session->name); + } + return 0; error: @@ -1244,7 +1264,7 @@ enum lttng_error_code 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; + struct ltt_session *session = NULL; uint64_t trace_archive_id; assert(ksess); @@ -1297,7 +1317,7 @@ enum lttng_error_code kernel_snapshot_record(struct ltt_kernel_session *ksess, /* Put back the saved consumer output into the session. */ ksess->consumer = saved_output; if (ret < 0) { - status = LTTNG_ERR_KERN_CONSUMER_FAIL; + status = LTTNG_ERR_KERN_META_FAIL; goto error_consumer; } @@ -1344,7 +1364,9 @@ error: /* Restore metadata state.*/ ksess->metadata = saved_metadata; ksess->metadata_stream_fd = saved_metadata_fd; - + if (session) { + session_put(session); + } rcu_read_unlock(); return status; } @@ -1430,7 +1452,7 @@ enum lttng_error_code kernel_rotate_session(struct ltt_session *session) chan->key, session->name); ret = consumer_rotate_channel(socket, chan->key, ksess->uid, ksess->gid, ksess->consumer, - ksess->consumer->subdir, + ksess->consumer->domain_subdir, /* is_metadata_channel */ false, session->current_archive_id); if (ret < 0) { @@ -1444,7 +1466,7 @@ enum lttng_error_code kernel_rotate_session(struct ltt_session *session) */ ret = consumer_rotate_channel(socket, ksess->metadata->key, ksess->uid, ksess->gid, ksess->consumer, - ksess->consumer->subdir, + ksess->consumer->domain_subdir, /* is_metadata_channel */ true, session->current_archive_id); if (ret < 0) {