On Thu,  8 Jan 2026 23:23:03 +0900
"Masami Hiramatsu (Google)" <[email protected]> wrote:

> diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
> index 9b07ad9eb284..741b16b54d90 100644
> --- a/kernel/trace/trace_events.c
> +++ b/kernel/trace/trace_events.c
> @@ -1379,6 +1379,9 @@ static int __ftrace_set_clr_event(struct trace_array 
> *tr, const char *match,
>  {
>       int ret;
>  
> +     if (trace_array_is_readonly(tr))
> +             return -EPERM;
> +
>       mutex_lock(&event_mutex);
>       ret = __ftrace_set_clr_event_nolock(tr, match, sub, event, set, mod);
>       mutex_unlock(&event_mutex);
> @@ -2817,8 +2820,8 @@ event_subsystem_dir(struct trace_array *tr, const char 
> *name,
>       } else
>               __get_system(system);
>  
> -     /* ftrace only has directories no files */
> -     if (strcmp(name, "ftrace") == 0)
> +     /* ftrace only has directories no files, readonly instance too. */
> +     if (strcmp(name, "ftrace") == 0 || trace_array_is_readonly(tr))
>               nr_entries = 0;
>       else
>               nr_entries = ARRAY_SIZE(system_entries);
> @@ -2979,7 +2982,6 @@ event_create_dir(struct eventfs_inode *parent, struct 
> trace_event_file *file)
>       struct eventfs_inode *e_events;
>       struct eventfs_inode *ei;
>       const char *name;
> -     int nr_entries;
>       int ret;
>       static struct eventfs_entry event_entries[] = {
>               {
> @@ -3024,6 +3026,18 @@ event_create_dir(struct eventfs_inode *parent, struct 
> trace_event_file *file)
>               },
>  #endif
>       };
> +     static struct eventfs_entry event_ro_entries[] = {
> +             {
> +                     .name           = "format",
> +                     .callback       = event_callback,
> +             },
> +#ifdef CONFIG_PERF_EVENTS
> +             {
> +                     .name           = "id",
> +                     .callback       = event_callback,
> +             },
> +#endif
> +     };

Thinking about this hack again, it would be easier to maintain if I add
a readonly flag to each eventfs_entry and specify readonly when creating
the eventfs top directory.

Let me update it.

Thank you,


-- 
Masami Hiramatsu (Google) <[email protected]>

Reply via email to