X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fkernel.c;h=955fd3ac27e9de62fac25a1cdce367f001b4c4f5;hp=4fdc34bad23fb329edf97b893ca8d103c4982cd6;hb=d070c424703336e9cca9d1603e1a81bee5b59560;hpb=ce75e27ac20a5eb37fd1334e88a59a0cb91cb397 diff --git a/src/bin/lttng-sessiond/kernel.c b/src/bin/lttng-sessiond/kernel.c index 4fdc34bad..955fd3ac2 100644 --- a/src/bin/lttng-sessiond/kernel.c +++ b/src/bin/lttng-sessiond/kernel.c @@ -131,6 +131,7 @@ int kernel_create_session(struct ltt_session *session, int tracer_fd) error: if (lks) { trace_kernel_destroy_session(lks); + trace_kernel_free_session(lks); } return ret; } @@ -1156,7 +1157,7 @@ end_boot_id: } /* - * Complete teardown of a kernel session. + * Teardown of a kernel session, keeping data required by destroy notifiers. */ void kernel_destroy_session(struct ltt_kernel_session *ksess) { @@ -1205,6 +1206,15 @@ void kernel_destroy_session(struct ltt_kernel_session *ksess) lttng_trace_chunk_put(trace_chunk); } +/* Teardown of data required by destroy notifiers. */ +void kernel_free_session(struct ltt_kernel_session *ksess) +{ + if (ksess == NULL) { + return; + } + trace_kernel_free_session(ksess); +} + /* * Destroy a kernel channel object. It does not do anything on the tracer side. */