Fix comment
[lttng-tools.git] / ltt-sessiond / main.c
index 46e6fff454e66aa7dd091fb8a49edadc1d008c53..4da3caba0471f7977452d7412229c17cccdd2295 100644 (file)
@@ -1,7 +1,4 @@
 /*
-   DBG("Creating kernel event %s for channel %s.",
-   cmd_ctx->lsm->u.enable.event.name, cmd_ctx->lsm->u.enable.channel_name);
-
  * Copyright (C) 2011 - David Goulet <david.goulet@polymtl.ca>
  *
  * This program is free software; you can redistribute it and/or
@@ -826,12 +823,14 @@ static int process_client_msg(struct command_ctx *cmd_ctx)
                /* Need a session for kernel command */
                if (cmd_ctx->lsm->cmd_type != LTTNG_KERNEL_LIST_EVENTS &&
                                cmd_ctx->session->kernel_session == NULL) {
+
                        ret = create_kernel_session(cmd_ctx->session);
                        if (ret < 0) {
                                ret = LTTCOMM_KERN_SESS_FAIL;
                                goto error;
                        }
 
+                       /* Start the kernel consumer daemon */
                        if (kconsumerd_pid == 0) {
                                ret = start_kconsumerd();
                                if (ret < 0) {
@@ -874,6 +873,41 @@ static int process_client_msg(struct command_ctx *cmd_ctx)
                ret = LTTCOMM_OK;
                break;
        }
+       case LTTNG_KERNEL_DISABLE_EVENT:
+       {
+               int found = 0;
+               struct ltt_kernel_channel *chan;
+
+               /* Setup lttng message with no payload */
+               ret = setup_lttng_msg(cmd_ctx, 0);
+               if (ret < 0) {
+                       goto setup_error;
+               }
+
+               /* Get channel by name and create event for that channel */
+               cds_list_for_each_entry(chan, &cmd_ctx->session->kernel_session->channel_list.head, list) {
+                       if (strcmp(cmd_ctx->lsm->u.disable.channel_name, chan->channel->name) == 0) {
+                               DBG("Disabling kernel event %s for channel %s.",
+                                               cmd_ctx->lsm->u.disable.name, cmd_ctx->lsm->u.disable.channel_name);
+
+                               ret = kernel_disable_event(cmd_ctx->lsm->u.disable.name, chan);
+                               if (ret < 0) {
+                                       ret = LTTCOMM_KERN_DISABLE_FAIL;
+                                       goto error;
+                               }
+                               found = 1;
+                               break;
+                       }
+               }
+
+               if (!found) {
+                       ret = LTTCOMM_KERN_CHAN_NOT_FOUND;
+               } else {
+                       kernel_wait_quiescent(kernel_tracer_fd);
+                       ret = LTTCOMM_OK;
+               }
+               break;
+       }
        case LTTNG_KERNEL_ENABLE_EVENT:
        {
                int found = 0;
This page took 0.024243 seconds and 4 git commands to generate.