X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=lttng-sessiond%2Fmain.c;h=9af001dfd63d3de910d8de5f14a6beca4872f334;hp=b2d421e56b15b8bd9e6534a35819d9755853d8f2;hb=ff4d74e67c570a1419df7315453a60e9d1f16a7d;hpb=9730260e7e733b421e1af26a9953f938de2628cc diff --git a/lttng-sessiond/main.c b/lttng-sessiond/main.c index b2d421e56..9af001dfd 100644 --- a/lttng-sessiond/main.c +++ b/lttng-sessiond/main.c @@ -2276,15 +2276,17 @@ static int cmd_disable_event(struct ltt_session *session, int domain, case LTTNG_DOMAIN_KERNEL: { struct ltt_kernel_channel *kchan; + struct ltt_kernel_session *ksess; - kchan = trace_kernel_get_channel_by_name(channel_name, - session->kernel_session); + ksess = session->kernel_session; + + kchan = trace_kernel_get_channel_by_name(channel_name, ksess); if (kchan == NULL) { ret = LTTCOMM_KERN_CHAN_NOT_FOUND; goto error; } - ret = event_kernel_disable_tracepoint(session->kernel_session, kchan, event_name); + ret = event_kernel_disable_tracepoint(ksess, kchan, event_name); if (ret != LTTCOMM_OK) { goto error; } @@ -2293,11 +2295,34 @@ static int cmd_disable_event(struct ltt_session *session, int domain, break; } case LTTNG_DOMAIN_UST: + { + struct ltt_ust_session *usess; + struct ltt_ust_channel *uchan; + + usess = session->ust_session; + + uchan = trace_ust_find_channel_by_name(usess->domain_global.channels, + channel_name); + if (uchan == NULL) { + ret = LTTCOMM_UST_CHAN_NOT_FOUND; + goto error; + } + + ret = ust_app_disable_event(usess, uchan, event_name); + if (ret < 0) { + ret = LTTCOMM_UST_DISABLE_FAIL; + goto error; + } + + DBG2("Disable UST event %s in channel %s completed", event_name, + channel_name); + + break; + } case LTTNG_DOMAIN_UST_EXEC_NAME: case LTTNG_DOMAIN_UST_PID: case LTTNG_DOMAIN_UST_PID_FOLLOW_CHILDREN: default: - /* TODO: Other UST domains */ ret = LTTCOMM_NOT_IMPLEMENTED; goto error; } @@ -2449,8 +2474,10 @@ static int cmd_enable_event(struct ltt_session *session, int domain, ret = channel_kernel_create(session->kernel_session, attr, kernel_poll_pipe[1]); if (ret != LTTCOMM_OK) { + free(attr); goto error; } + free(attr); } /* Get the newly created kernel channel pointer */ @@ -2491,6 +2518,7 @@ static int cmd_enable_event(struct ltt_session *session, int domain, /* Use the internal command enable channel */ ret = cmd_enable_channel(session, domain, attr); if (ret < 0) { + free(attr); goto error; }