if (eflags & EVENT_FILE_FL_TRIGGER_COND)
                *tt = event_triggers_call(file, buffer, entry, event);
 
-       if (test_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &file->flags) ||
-           (unlikely(file->flags & EVENT_FILE_FL_FILTERED) &&
-            !filter_match_preds(file->filter, entry))) {
-               __trace_event_discard_commit(buffer, event);
-               return true;
-       }
+       if (likely(!(file->flags & (EVENT_FILE_FL_SOFT_DISABLED |
+                                   EVENT_FILE_FL_FILTERED |
+                                   EVENT_FILE_FL_PID_FILTER))))
+               return false;
+
+       if (file->flags & EVENT_FILE_FL_SOFT_DISABLED)
+               goto discard;
+
+       if (file->flags & EVENT_FILE_FL_FILTERED &&
+           !filter_match_preds(file->filter, entry))
+               goto discard;
+
+       if ((file->flags & EVENT_FILE_FL_PID_FILTER) &&
+           trace_event_ignore_this_pid(file))
+               goto discard;
 
        return false;
+ discard:
+       __trace_event_discard_commit(buffer, event);
+       return true;
 }
 
 /**