tracing: Fold filter_check_discard() into its only user
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>
Wed, 27 Apr 2016 15:09:42 +0000 (11:09 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Fri, 29 Apr 2016 20:14:08 +0000 (16:14 -0400)
The function filter_check_discard() is small and only called by one user,
its code can be folded into that one caller and make the code a bit less
comlplex.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/trace.c
kernel/trace/trace.h

index 02f5a5f51d496d4e5796c3e31e53c27dd3242453..1ba54e241c8d30b7b5924e3eb374593304bef616 100644 (file)
@@ -306,19 +306,6 @@ void trace_array_put(struct trace_array *this_tr)
        mutex_unlock(&trace_types_lock);
 }
 
-int filter_check_discard(struct trace_event_file *file, void *rec,
-                        struct ring_buffer *buffer,
-                        struct ring_buffer_event *event)
-{
-       if (unlikely(file->flags & EVENT_FILE_FL_FILTERED) &&
-           !filter_match_preds(file->filter, rec)) {
-               ring_buffer_discard_commit(buffer, event);
-               return 1;
-       }
-
-       return 0;
-}
-
 int call_filter_check_discard(struct trace_event_call *call, void *rec,
                              struct ring_buffer *buffer,
                              struct ring_buffer_event *event)
index ee8691c66bfecb5e3420c7577930c964ffdaa881..0862e7559548c262d2ced0ca589780d06c726ab2 100644 (file)
@@ -1065,9 +1065,6 @@ struct trace_subsystem_dir {
        int                             nr_events;
 };
 
-extern int filter_check_discard(struct trace_event_file *file, void *rec,
-                               struct ring_buffer *buffer,
-                               struct ring_buffer_event *event);
 extern int call_filter_check_discard(struct trace_event_call *call, void *rec,
                                     struct ring_buffer *buffer,
                                     struct ring_buffer_event *event);
@@ -1096,12 +1093,14 @@ __event_trigger_test_discard(struct trace_event_file *file,
        if (eflags & EVENT_FILE_FL_TRIGGER_COND)
                *tt = event_triggers_call(file, entry);
 
-       if (test_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &file->flags))
+       if (test_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &file->flags) ||
+           (unlikely(file->flags & EVENT_FILE_FL_FILTERED) &&
+            !filter_match_preds(file->filter, entry))) {
                ring_buffer_discard_commit(buffer, event);
-       else if (!filter_check_discard(file, entry, buffer, event))
-               return false;
+               return true;
+       }
 
-       return true;
+       return false;
 }
 
 /**