Re: [PATCH] ftrace: fix the file mode of graph tracer and stacktracer

From: Zhengyuan Liu
Date: Thu Feb 08 2018 - 21:33:44 EST


2018-02-08 23:21 GMT+08:00 Steven Rostedt <rostedt@xxxxxxxxxxx>:
> On Thu, 8 Feb 2018 09:41:53 +0800
> Zhengyuan Liu <liuzhengyuan@xxxxxxxxxx> wrote:
>
>> It's something looks weird that those files could be written by root
>> but shows with no write permission by ll command.
>> Chen LinX <linx.z.chen@xxxxxxxxx> has sent a similar patch to fix
>> graph function file mode in 2000, I didn't get the reason why that
>> patch wasn't applied so I resend it.
>>
>> Signed-off-by: Zhengyuan Liu <liuzhengyuan@xxxxxxxxxx>
>> ---
>> kernel/trace/ftrace.c | 4 ++--
>> kernel/trace/trace_stack.c | 2 +-
>> 2 files changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
>> index ccdf366..fe903dc8 100644
>> --- a/kernel/trace/ftrace.c
>> +++ b/kernel/trace/ftrace.c
>> @@ -5513,10 +5513,10 @@ static __init int ftrace_init_dyn_tracefs(struct dentry *d_tracer)
>> ftrace_create_filter_files(&global_ops, d_tracer);
>>
>> #ifdef CONFIG_FUNCTION_GRAPH_TRACER
>> - trace_create_file("set_graph_function", 0444, d_tracer,
>> + trace_create_file("set_graph_function", 0644, d_tracer,
>
> Thanks for resending the patch.
>
> What's interesting is that this doesn't seem to affect whether or not
> root can write to the file. I wonder if that's a bug itself.
>
> -- Steve

Hi, Steve, Thanks for reply.

It doesn't affect root writing to those files as root is a super user and
can access to any write-only files. I just want to make those writable
file to look consistent with others, seeing bellow:

-rw-r--r-- 1 root root set_event_pid
-rw-r--r-- 1 root root set_ftrace_filter
-rw-r--r-- 1 root root set_ftrace_notrace
-rw-r--r-- 1 root root set_ftrace_pid
-r--r--r-- 1 root root set_graph_function
-r--r--r-- 1 root root set_graph_notrace

If this patch makes no sense, just ignore it!

>> NULL,
>> &ftrace_graph_fops);
>> - trace_create_file("set_graph_notrace", 0444, d_tracer,
>> + trace_create_file("set_graph_notrace", 0644, d_tracer,
>> NULL,
>> &ftrace_graph_notrace_fops);
>> #endif /* CONFIG_FUNCTION_GRAPH_TRACER */
>> diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c
>> index 734accc..4356f14 100644
>> --- a/kernel/trace/trace_stack.c
>> +++ b/kernel/trace/trace_stack.c
>> @@ -468,7 +468,7 @@ static __init int stack_trace_init(void)
>> NULL, &stack_trace_fops);
>>
>> #ifdef CONFIG_DYNAMIC_FTRACE
>> - trace_create_file("stack_trace_filter", 0444, d_tracer,
>> + trace_create_file("stack_trace_filter", 0644, d_tracer,
>> &trace_ops, &stack_trace_filter_fops);
>> #endif
>>
>