list_add_rcu(&data->list, &file->triggers);
        ret++;
 
+       update_cond_flag(file);
        if (trace_event_trigger_enable_disable(file, 1) < 0) {
                list_del_rcu(&data->list);
+               update_cond_flag(file);
                ret--;
        }
-       update_cond_flag(file);
 out:
        return ret;
 }
                if (data->cmd_ops->trigger_type == test->cmd_ops->trigger_type) {
                        unregistered = true;
                        list_del_rcu(&data->list);
-                       update_cond_flag(file);
                        trace_event_trigger_enable_disable(file, 0);
+                       update_cond_flag(file);
                        break;
                }
        }
        list_add_rcu(&data->list, &file->triggers);
        ret++;
 
+       update_cond_flag(file);
        if (trace_event_trigger_enable_disable(file, 1) < 0) {
                list_del_rcu(&data->list);
+               update_cond_flag(file);
                ret--;
        }
-       update_cond_flag(file);
 out:
        return ret;
 }
                    (enable_data->file == test_enable_data->file)) {
                        unregistered = true;
                        list_del_rcu(&data->list);
-                       update_cond_flag(file);
                        trace_event_trigger_enable_disable(file, 0);
+                       update_cond_flag(file);
                        break;
                }
        }