[PATCH v2 0/7] tracing: ->filter cleanups

Oleg Nesterov
2014-07-15T18:49:57Z

Hello,

To avoid the confusion, let me resend everything (except the 1st patch
you already applied) with v2 tag.

Changes:

4/7 - fix the typo in changelog, add the ack from Srikar

6/7 - by discussion with you and Namhyung: pass dir rather
then system, update replace_system_preds() as well.

7/7 - new, cosmetic/trivial.

I tried to play with "filter" files, everything seems to work with the
additional debugging patch below.

Oleg.
---

diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c
index 7a8c152..4c16229 100644
--- a/kernel/trace/trace_events_filter.c
+++ b/kernel/trace/trace_events_filter.c
@@ -848,6 +848,7 @@ static void filter_free_subsystem_preds(struct ftrace_subsystem_dir *dir,
struct ftrace_event_file *file;

list_for_each_entry(file, &tr->events, list) {
+BUG_ON((file->system != dir) != !!strcmp(file->event_call->class->system, dir->subsystem->name));
if (file->system != dir)
continue;
__remove_filter(file);
@@ -873,6 +874,7 @@ static void filter_free_subsystem_filters(struct ftrace_subsystem_dir *dir,
struct ftrace_event_file *file;

list_for_each_entry(file, &tr->events, list) {
+BUG_ON((file->system != dir) != !!strcmp(file->event_call->class->system, dir->subsystem->name));
if (file->system != dir)
continue;
__free_subsystem_filter(file);
@@ -1731,6 +1733,7 @@ static int replace_system_preds(struct ftrace_subsystem_dir *dir,
int err;

list_for_each_entry(file, &tr->events, list) {
+BUG_ON((file->system != dir) != !!strcmp(file->event_call->class->system, dir->subsystem->name));
if (file->system != dir)
continue;

@@ -1748,6 +1751,7 @@ static int replace_system_preds(struct ftrace_subsystem_dir *dir,
list_for_each_entry(file, &tr->events, list) {
struct event_filter *filter;

+BUG_ON((file->system != dir) != !!strcmp(file->event_call->class->system, dir->subsystem->name));
if (file->system != dir)
continue;