- ret = lttng_enable_event_with_exclusions(handle, &event, channel_name,
- filter_expression, exclusion_count, exclusions);
- if (ret) {
- goto end;
- }
-
- if (!event.enabled) {
- /*
- * Note that we should use lttng_disable_event_ext() (2.6+) to
- * eliminate the risk of clashing on events of the same
- * name (with different event types and loglevels).
- *
- * Unfortunately, lttng_disable_event_ext() only performs a
- * match on the name and event type and errors out if any other
- * event attribute is not set to its default value.
- *
- * This will disable all events that match this name.
- */
- ret = lttng_disable_event(handle, event.name, channel_name);
+ if ((event.enabled && phase == ENABLE) || phase == CREATION) {
+ ret = lttng_enable_event_with_exclusions(handle, &event, channel_name,
+ filter_expression, exclusion_count, exclusions);
+ if (ret < 0) {
+ WARN("Enabling event (name:%s) on load failed.", event.name);
+ ret = -LTTNG_ERR_LOAD_INVALID_CONFIG;
+ goto end;
+ }