From: "Steven Rostedt (Red Hat)" <[email protected]>

The creation of the set_event_pid file was assigned to a variable "entry"
but that variable was never used. Ideally, it should be used to check if the
file was created and warn if it was not.

The files header_page, header_event should also be checked and a warning if
they fail to be created.

The "enable" file was moved up, as it is a more crucial file to have and a
hard failure (return -ENOMEM) should be returned if it is not created.

Reported-by: David Binderman <[email protected]>
Signed-off-by: Steven Rostedt <[email protected]>
---
 kernel/trace/trace_events.c | 30 +++++++++++++++++++++---------
 1 file changed, 21 insertions(+), 9 deletions(-)

diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index 03c0a48c3ac4..ba67ede48822 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -2843,20 +2843,32 @@ create_event_toplevel_files(struct dentry *parent, 
struct trace_array *tr)
                return -ENOMEM;
        }
 
+       entry = trace_create_file("enable", 0644, d_events,
+                                 tr, &ftrace_tr_enable_fops);
+       if (!entry) {
+               pr_warn("Could not create tracefs 'enable' entry\n");
+               return -ENOMEM;
+       }
+
+       /* There are not as crucial, just warn if they are not created */
+
        entry = tracefs_create_file("set_event_pid", 0644, parent,
                                    tr, &ftrace_set_event_pid_fops);
+       if (!entry)
+               pr_warn("Could not create tracefs 'set_event_pid' entry\n");
 
        /* ring buffer internal formats */
-       trace_create_file("header_page", 0444, d_events,
-                         ring_buffer_print_page_header,
-                         &ftrace_show_header_fops);
-
-       trace_create_file("header_event", 0444, d_events,
-                         ring_buffer_print_entry_header,
-                         &ftrace_show_header_fops);
+       entry = trace_create_file("header_page", 0444, d_events,
+                                 ring_buffer_print_page_header,
+                                 &ftrace_show_header_fops);
+       if (!entry)
+               pr_warn("Could not create tracefs 'header_page' entry\n");
 
-       trace_create_file("enable", 0644, d_events,
-                         tr, &ftrace_tr_enable_fops);
+       entry = trace_create_file("header_event", 0444, d_events,
+                                 ring_buffer_print_entry_header,
+                                 &ftrace_show_header_fops);
+       if (!entry)
+               pr_warn("Could not create tracefs 'header_event' entry\n");
 
        tr->event_dir = d_events;
 
-- 
2.10.2


Reply via email to