X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fsession.c;h=3a537e49e2179357298cb43813dfa17a6f63927d;hb=343defc2671db532be8a9eed84907fd2e4044f0e;hp=ed68d153f20749630012c93a4487f6dad6efec96;hpb=e3876bf0e1d1be72170b53e9fcb39f3108f069dc;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/session.c b/src/bin/lttng-sessiond/session.c index ed68d153f..3a537e49e 100644 --- a/src/bin/lttng-sessiond/session.c +++ b/src/bin/lttng-sessiond/session.c @@ -302,7 +302,7 @@ end: * * The session list lock must be held. */ -int ltt_sessions_ht_alloc(void) +static int ltt_sessions_ht_alloc(void) { int ret = 0; @@ -491,7 +491,8 @@ int _session_set_trace_chunk_no_lock_check(struct ltt_session *session, pthread_mutex_lock(socket->lock); ret = consumer_create_trace_chunk(socket, relayd_id, - session->id, new_trace_chunk); + session->id, new_trace_chunk, + DEFAULT_UST_TRACE_DIR); pthread_mutex_unlock(socket->lock); if (ret) { goto error; @@ -521,7 +522,8 @@ int _session_set_trace_chunk_no_lock_check(struct ltt_session *session, pthread_mutex_lock(socket->lock); ret = consumer_create_trace_chunk(socket, relayd_id, - session->id, new_trace_chunk); + session->id, new_trace_chunk, + DEFAULT_KERNEL_TRACE_DIR); pthread_mutex_unlock(socket->lock); if (ret) { goto error; @@ -575,7 +577,7 @@ struct lttng_trace_chunk *session_create_new_trace_chunk( const time_t chunk_creation_ts = time(NULL); bool is_local_trace; const char *base_path; - struct lttng_directory_handle session_output_directory; + struct lttng_directory_handle *session_output_directory = NULL; const struct lttng_credentials session_credentials = { .uid = session->uid, .gid = session->gid, @@ -640,28 +642,29 @@ struct lttng_trace_chunk *session_create_new_trace_chunk( if (ret) { goto error; } - ret = lttng_directory_handle_init(&session_output_directory, - base_path); - if (ret) { + session_output_directory = lttng_directory_handle_create(base_path); + if (!session_output_directory) { goto error; } chunk_status = lttng_trace_chunk_set_as_owner(trace_chunk, - &session_output_directory); - lttng_directory_handle_fini(&session_output_directory); + session_output_directory); + lttng_directory_handle_put(session_output_directory); + session_output_directory = NULL; if (chunk_status != LTTNG_TRACE_CHUNK_STATUS_OK) { goto error; } end: return trace_chunk; error: + lttng_directory_handle_put(session_output_directory); lttng_trace_chunk_put(trace_chunk); trace_chunk = NULL; goto end; } -int session_close_trace_chunk(const struct ltt_session *session, +int session_close_trace_chunk(struct ltt_session *session, struct lttng_trace_chunk *trace_chunk, - const enum lttng_trace_chunk_command_type *close_command, + enum lttng_trace_chunk_command_type close_command, char *closed_trace_chunk_path) { int ret = 0; @@ -671,13 +674,11 @@ int session_close_trace_chunk(const struct ltt_session *session, enum lttng_trace_chunk_status chunk_status; const time_t chunk_close_timestamp = time(NULL); - if (close_command) { - chunk_status = lttng_trace_chunk_set_close_command( - trace_chunk, *close_command); - if (chunk_status != LTTNG_TRACE_CHUNK_STATUS_OK) { - ret = -1; - goto end; - } + chunk_status = lttng_trace_chunk_set_close_command( + trace_chunk, close_command); + if (chunk_status != LTTNG_TRACE_CHUNK_STATUS_OK) { + ret = -1; + goto end; } if (chunk_close_timestamp == (time_t) -1) {