X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fkernel.c;h=955fd3ac27e9de62fac25a1cdce367f001b4c4f5;hb=3050aa9225f10e1dbd362c9c96f85ccca684128b;hp=4fdc34bad23fb329edf97b893ca8d103c4982cd6;hpb=348a81dcf7b6944b10a813d93dcaf86fdb5194f6;p=lttng-tools.git 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. */