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);
/* 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;
}
/* Restore metadata state.*/
ksess->metadata = saved_metadata;
ksess->metadata_stream_fd = saved_metadata_fd;
-
+ if (session) {
+ session_put(session);
+ }
rcu_read_unlock();
return status;
}
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) {
*/
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) {