Support LTTNG_KERNEL_SESSION_SET_NAME of lttng-modules
[lttng-tools.git] / src / bin / lttng-sessiond / kernel.c
index edb7f7b2f2f3f83efd53ac077f005b26388d52d9..75b76db2ecc501d0f864dac63d8f580ff2f31452 100644 (file)
@@ -125,6 +125,11 @@ int kernel_create_session(struct ltt_session *session, int tracer_fd)
 
        DBG("Kernel session created (fd: %d)", lks->fd);
 
+       ret = kernctl_session_set_name(lks->fd, session->name);
+       if (ret) {
+               WARN("Could not set kernel session name");
+       }
+
        return 0;
 
 error:
@@ -1244,7 +1249,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 +1302,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 +1349,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 +1437,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 +1451,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) {
This page took 0.025493 seconds and 5 git commands to generate.