projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove unneeded creation of the UST domain sub-directory
[lttng-tools.git]
/
src
/
bin
/
lttng-sessiond
/
kernel.c
diff --git
a/src/bin/lttng-sessiond/kernel.c
b/src/bin/lttng-sessiond/kernel.c
index be263943f0211a9cffdb563f0a22ddfda9e9653c..7173fac16348d59cab3f2e220cb927797761fcf3 100644
(file)
--- a/
src/bin/lttng-sessiond/kernel.c
+++ b/
src/bin/lttng-sessiond/kernel.c
@@
-24,6
+24,7
@@
#include <inttypes.h>
#include <common/common.h>
#include <inttypes.h>
#include <common/common.h>
+#include <common/trace-chunk.h>
#include <common/kernel-ctl/kernel-ctl.h>
#include <common/kernel-ctl/kernel-ioctl.h>
#include <common/sessiond-comm/sessiond-comm.h>
#include <common/kernel-ctl/kernel-ctl.h>
#include <common/kernel-ctl/kernel-ioctl.h>
#include <common/sessiond-comm/sessiond-comm.h>
@@
-1159,12
+1160,15
@@
end_boot_id:
*/
void kernel_destroy_session(struct ltt_kernel_session *ksess)
{
*/
void kernel_destroy_session(struct ltt_kernel_session *ksess)
{
+ struct lttng_trace_chunk *trace_chunk;
+
if (ksess == NULL) {
DBG3("No kernel session when tearing down session");
return;
}
DBG("Tearing down kernel session");
if (ksess == NULL) {
DBG3("No kernel session when tearing down session");
return;
}
DBG("Tearing down kernel session");
+ trace_chunk = ksess->current_trace_chunk;
/*
* Destroy channels on the consumer if at least one FD has been sent and we
/*
* Destroy channels on the consumer if at least one FD has been sent and we
@@
-1198,6
+1202,7
@@
void kernel_destroy_session(struct ltt_kernel_session *ksess)
consumer_output_send_destroy_relayd(ksess->consumer);
trace_kernel_destroy_session(ksess);
consumer_output_send_destroy_relayd(ksess->consumer);
trace_kernel_destroy_session(ksess);
+ lttng_trace_chunk_put(trace_chunk);
}
/*
}
/*
@@
-1233,17
+1238,18
@@
void kernel_destroy_channel(struct ltt_kernel_channel *kchan)
/*
* Take a snapshot for a given kernel session.
*
/*
* Take a snapshot for a given kernel session.
*
- * Return
0
on success or else return a LTTNG_ERR code.
+ * Return
LTTNG_OK
on success or else return a LTTNG_ERR code.
*/
*/
-
int
kernel_snapshot_record(struct ltt_kernel_session *ksess,
+
enum lttng_error_code
kernel_snapshot_record(struct ltt_kernel_session *ksess,
struct snapshot_output *output, int wait,
uint64_t nb_packets_per_stream)
{
int err, ret, saved_metadata_fd;
struct snapshot_output *output, int wait,
uint64_t nb_packets_per_stream)
{
int err, ret, saved_metadata_fd;
+ enum lttng_error_code status = LTTNG_OK;
struct consumer_socket *socket;
struct lttng_ht_iter iter;
struct ltt_kernel_metadata *saved_metadata;
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);
uint64_t trace_archive_id;
assert(ksess);
@@
-1266,13
+1272,13
@@
int kernel_snapshot_record(struct ltt_kernel_session *ksess,
ret = kernel_open_metadata(ksess);
if (ret < 0) {
ret = kernel_open_metadata(ksess);
if (ret < 0) {
-
ret
= LTTNG_ERR_KERN_META_FAIL;
+
status
= LTTNG_ERR_KERN_META_FAIL;
goto error;
}
ret = kernel_open_metadata_stream(ksess);
if (ret < 0) {
goto error;
}
ret = kernel_open_metadata_stream(ksess);
if (ret < 0) {
-
ret
= LTTNG_ERR_KERN_META_FAIL;
+
status
= LTTNG_ERR_KERN_META_FAIL;
goto error_open_stream;
}
goto error_open_stream;
}
@@
-1296,19
+1302,18
@@
int kernel_snapshot_record(struct ltt_kernel_session *ksess,
/* Put back the saved consumer output into the session. */
ksess->consumer = saved_output;
if (ret < 0) {
/* Put back the saved consumer output into the session. */
ksess->consumer = saved_output;
if (ret < 0) {
-
ret = LTTNG_ERR_KERN_CONSUMER
_FAIL;
+
status = LTTNG_ERR_KERN_META
_FAIL;
goto error_consumer;
}
/* For each channel, ask the consumer to snapshot it. */
cds_list_for_each_entry(chan, &ksess->channel_list.head, list) {
goto error_consumer;
}
/* For each channel, ask the consumer to snapshot it. */
cds_list_for_each_entry(chan, &ksess->channel_list.head, list) {
-
ret
= consumer_snapshot_channel(socket, chan->key, output, 0,
+
status
= consumer_snapshot_channel(socket, chan->key, output, 0,
ksess->uid, ksess->gid,
DEFAULT_KERNEL_TRACE_DIR, wait,
nb_packets_per_stream,
trace_archive_id);
ksess->uid, ksess->gid,
DEFAULT_KERNEL_TRACE_DIR, wait,
nb_packets_per_stream,
trace_archive_id);
- if (ret < 0) {
- ret = LTTNG_ERR_KERN_CONSUMER_FAIL;
+ if (status != LTTNG_OK) {
(void) kernel_consumer_destroy_metadata(socket,
ksess->metadata);
goto error_consumer;
(void) kernel_consumer_destroy_metadata(socket,
ksess->metadata);
goto error_consumer;
@@
-1316,12
+1321,11
@@
int kernel_snapshot_record(struct ltt_kernel_session *ksess,
}
/* Snapshot metadata, */
}
/* Snapshot metadata, */
-
ret
= consumer_snapshot_channel(socket, ksess->metadata->key, output,
+
status
= consumer_snapshot_channel(socket, ksess->metadata->key, output,
1, ksess->uid, ksess->gid,
DEFAULT_KERNEL_TRACE_DIR, wait, 0,
trace_archive_id);
1, ksess->uid, ksess->gid,
DEFAULT_KERNEL_TRACE_DIR, wait, 0,
trace_archive_id);
- if (ret < 0) {
- ret = LTTNG_ERR_KERN_CONSUMER_FAIL;
+ if (status != LTTNG_OK) {
goto error_consumer;
}
goto error_consumer;
}
@@
-1332,8
+1336,6
@@
int kernel_snapshot_record(struct ltt_kernel_session *ksess,
(void) kernel_consumer_destroy_metadata(socket, ksess->metadata);
}
(void) kernel_consumer_destroy_metadata(socket, ksess->metadata);
}
- ret = LTTNG_OK;
-
error_consumer:
/* Close newly opened metadata stream. It's now on the consumer side. */
err = close(ksess->metadata_stream_fd);
error_consumer:
/* Close newly opened metadata stream. It's now on the consumer side. */
err = close(ksess->metadata_stream_fd);
@@
-1347,9
+1349,11
@@
error:
/* Restore metadata state.*/
ksess->metadata = saved_metadata;
ksess->metadata_stream_fd = saved_metadata_fd;
/* Restore metadata state.*/
ksess->metadata = saved_metadata;
ksess->metadata_stream_fd = saved_metadata_fd;
-
+ if (session) {
+ session_put(session);
+ }
rcu_read_unlock();
rcu_read_unlock();
- return
ret
;
+ return
status
;
}
/*
}
/*
@@
-1401,11
+1405,12
@@
error:
/*
* Rotate a kernel session.
*
/*
* Rotate a kernel session.
*
- * Return
0 on success or else return a LTTNG_ERR
code.
+ * Return
LTTNG_OK on success or else an LTTng error
code.
*/
*/
-
int
kernel_rotate_session(struct ltt_session *session)
+
enum lttng_error_code
kernel_rotate_session(struct ltt_session *session)
{
int ret;
{
int ret;
+ enum lttng_error_code status = LTTNG_OK;
struct consumer_socket *socket;
struct lttng_ht_iter iter;
struct ltt_kernel_session *ksess = session->kernel_session;
struct consumer_socket *socket;
struct lttng_ht_iter iter;
struct ltt_kernel_session *ksess = session->kernel_session;
@@
-1432,11
+1437,11
@@
int kernel_rotate_session(struct ltt_session *session)
chan->key, session->name);
ret = consumer_rotate_channel(socket, chan->key,
ksess->uid, ksess->gid, ksess->consumer,
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) {
/* is_metadata_channel */ false,
session->current_archive_id);
if (ret < 0) {
-
ret
= LTTNG_ERR_KERN_CONSUMER_FAIL;
+
status
= LTTNG_ERR_KERN_CONSUMER_FAIL;
goto error;
}
}
goto error;
}
}
@@
-1446,18
+1451,16
@@
int kernel_rotate_session(struct ltt_session *session)
*/
ret = consumer_rotate_channel(socket, ksess->metadata->key,
ksess->uid, ksess->gid, ksess->consumer,
*/
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) {
/* is_metadata_channel */ true,
session->current_archive_id);
if (ret < 0) {
-
ret
= LTTNG_ERR_KERN_CONSUMER_FAIL;
+
status
= LTTNG_ERR_KERN_CONSUMER_FAIL;
goto error;
}
}
goto error;
}
}
- ret = LTTNG_OK;
-
error:
rcu_read_unlock();
error:
rcu_read_unlock();
- return
ret
;
+ return
status
;
}
}
This page took
0.029141 seconds
and
4
git commands to generate.