#include "channel.h"
#include "lttng-sessiond.h"
#include "kernel.h"
-#include "ust-ctl.h"
+#include "lttng-ust-ctl.h"
+#include "lttng-ust-error.h"
#include "utils.h"
#include "ust-app.h"
#include "agent.h"
attr->attr.overwrite = !!ksession->snapshot_mode;
}
- /* Enforce mmap output for snapshot sessions. */
- if (ksession->snapshot_mode) {
- attr->attr.output = LTTNG_EVENT_MMAP;
- }
-
/* Validate common channel properties. */
if (channel_validate(attr) < 0) {
ret = LTTNG_ERR_INVALID;
DBG3("Channel %s already enabled. Skipping", uchan->name);
ret = LTTNG_ERR_UST_CHAN_EXIST;
goto end;
+ } else {
+ uchan->enabled = 1;
+ DBG2("Channel %s enabled successfully", uchan->name);
+ }
+
+ if (!usess->active) {
+ /*
+ * The channel will be activated against the apps
+ * when the session is started as part of the
+ * application channel "synchronize" operation.
+ */
+ goto end;
}
DBG2("Channel %s being enabled in UST domain", uchan->name);
*/
(void) ust_app_enable_channel_glb(usess, uchan);
- uchan->enabled = 1;
- DBG2("Channel %s enabled successfully", uchan->name);
end:
return ret;
goto error_free_chan;
}
- /* Enable channel for global domain */
- ret = ust_app_create_channel_glb(usess, uchan);
- if (ret < 0 && ret != -LTTNG_UST_ERR_EXIST) {
- ret = LTTNG_ERR_UST_CHAN_FAIL;
- goto error_free_chan;
- }
-
/* Adding the channel to the channel hash table. */
rcu_read_lock();
if (strncmp(uchan->name, DEFAULT_METADATA_NAME,
DBG2("Channel UST %s already disabled", uchan->name);
goto end;
}
+ if (!usess->active) {
+ goto end;
+ }
DBG2("Channel %s being disabled in UST global domain", uchan->name);
/* Disable channel for global domain */