X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fevent.c;h=bedaa2e2f4e220e63c6458a1c7947aaa9081b3a3;hb=a433283e401f556b0eb87814475fc84b11fc9666;hp=0efdc9253d59adc98da8508c8909b9a6d9e58f06;hpb=d0ae4ea864f84fa2456563abb20fe42e5cc29625;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/event.c b/src/bin/lttng-sessiond/event.c index 0efdc9253..bedaa2e2f 100644 --- a/src/bin/lttng-sessiond/event.c +++ b/src/bin/lttng-sessiond/event.c @@ -129,7 +129,8 @@ int event_kernel_disable_event_all(struct ltt_kernel_channel *kchan) * We own filter_expression and filter. */ int event_kernel_enable_event(struct ltt_kernel_channel *kchan, - struct lttng_event *event) + struct lttng_event *event, char *filter_expression, + struct lttng_filter_bytecode *filter) { int ret; struct ltt_kernel_event *kevent; @@ -137,10 +138,14 @@ int event_kernel_enable_event(struct ltt_kernel_channel *kchan, assert(kchan); assert(event); - kevent = trace_kernel_get_event_by_name(event->name, kchan, - event->type); + kevent = trace_kernel_find_event(event->name, kchan, + event->type, filter); if (kevent == NULL) { - ret = kernel_create_event(event, kchan); + ret = kernel_create_event(event, kchan, + filter_expression, filter); + /* We have passed ownership */ + filter_expression = NULL; + filter = NULL; if (ret < 0) { switch (-ret) { case EEXIST: @@ -169,6 +174,8 @@ int event_kernel_enable_event(struct ltt_kernel_channel *kchan, ret = LTTNG_OK; end: + free(filter_expression); + free(filter); return ret; }