X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fsession.c;h=ee71533f9ff790e60e11fac522ac2c82c2f4e3c6;hp=383c6fde714c229f5adccd5c2abcf8c3c1fd5211;hb=5da88b0f58d7f838068037ea449ddfb25d3e85ad;hpb=83ed9e903336bd1d098d93b62cd6e444f2a8d6f1 diff --git a/src/bin/lttng-sessiond/session.c b/src/bin/lttng-sessiond/session.c index 383c6fde7..ee71533f9 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,20 +642,21 @@ 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; @@ -962,7 +965,7 @@ end: * Session list lock must be held by the caller. */ enum lttng_error_code session_create(const char *name, uid_t uid, gid_t gid, - const char *base_path, struct ltt_session **out_session) + struct ltt_session **out_session) { int ret; enum lttng_error_code ret_code; @@ -1086,16 +1089,6 @@ enum lttng_error_code session_create(const char *name, uid_t uid, gid_t gid, } } - if (base_path) { - new_session->base_path = strdup(base_path); - if (!new_session->base_path) { - ERR("Failed to allocate base path of session \"%s\"", - name); - ret_code = LTTNG_ERR_SESSION_FAIL; - goto error; - } - } - new_session->uid = uid; new_session->gid = gid;