Make lttng_directory_handle reference countable
[lttng-tools.git] / src / bin / lttng-relayd / main.c
index 6e5b612f21ae0cc72619a4b2c8ebbeb1d9367467..169832002a445fe522af0ef5e769490dd2ab710b 100644 (file)
@@ -2332,7 +2332,7 @@ static int relay_rotate_session_streams(
                                session->sessiond_uuid, session->id,
                                rotate_streams.new_chunk_id.value);
                if (!next_trace_chunk) {
-                       char uuid_str[UUID_STR_LEN];
+                       char uuid_str[LTTNG_UUID_STR_LEN];
 
                        lttng_uuid_to_str(session->sessiond_uuid, uuid_str);
                        ERR("Unknown next trace chunk in ROTATE_STREAMS command: sessiond_uuid = {%s}, session_id = %" PRIu64
@@ -2437,7 +2437,7 @@ static int relay_create_trace_chunk(const struct lttcomm_relayd_hdr *recv_hdr,
        struct lttng_trace_chunk *chunk = NULL, *published_chunk = NULL;
        enum lttng_error_code reply_code = LTTNG_OK;
        enum lttng_trace_chunk_status chunk_status;
-       struct lttng_directory_handle session_output;
+       struct lttng_directory_handle *session_output = NULL;
 
        if (!session || !conn->version_check_done) {
                ERR("Trying to create a trace chunk before version check");
@@ -2512,14 +2512,15 @@ static int relay_create_trace_chunk(const struct lttcomm_relayd_hdr *recv_hdr,
                goto end;
        }
 
-       ret = session_init_output_directory_handle(
-                       conn->session, &session_output);
-       if (ret) {
+       session_output = session_create_output_directory_handle(
+                       conn->session);
+       if (!session_output) {
                reply_code = LTTNG_ERR_CREATE_DIR_FAIL;
                goto end;
        }
-       chunk_status = lttng_trace_chunk_set_as_owner(chunk, &session_output);
-       lttng_directory_handle_fini(&session_output);
+       chunk_status = lttng_trace_chunk_set_as_owner(chunk, session_output);
+       lttng_directory_handle_put(session_output);
+       session_output = NULL;
        if (chunk_status != LTTNG_TRACE_CHUNK_STATUS_OK) {
                reply_code = LTTNG_ERR_UNK;
                ret = -1;
@@ -2532,7 +2533,7 @@ static int relay_create_trace_chunk(const struct lttcomm_relayd_hdr *recv_hdr,
                        conn->session->id,
                        chunk);
        if (!published_chunk) {
-               char uuid_str[UUID_STR_LEN];
+               char uuid_str[LTTNG_UUID_STR_LEN];
 
                lttng_uuid_to_str(conn->session->sessiond_uuid, uuid_str);
                ERR("Failed to publish chunk: sessiond_uuid = %s, session_id = %" PRIu64 ", chunk_id = %" PRIu64,
@@ -2575,6 +2576,7 @@ end:
 end_no_reply:
        lttng_trace_chunk_put(chunk);
        lttng_trace_chunk_put(published_chunk);
+       lttng_directory_handle_put(session_output);
        return ret;
 }
 
@@ -2638,7 +2640,7 @@ static int relay_close_trace_chunk(const struct lttcomm_relayd_hdr *recv_hdr,
                        conn->session->id,
                        chunk_id);
        if (!chunk) {
-               char uuid_str[UUID_STR_LEN];
+               char uuid_str[LTTNG_UUID_STR_LEN];
 
                lttng_uuid_to_str(conn->session->sessiond_uuid, uuid_str);
                ERR("Failed to find chunk to close: sessiond_uuid = %s, session_id = %" PRIu64 ", chunk_id = %" PRIu64,
This page took 0.025005 seconds and 4 git commands to generate.