Re: [PATCH v2 1/2] tracing: Make the backup instance readonly
From: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Date: 2026-01-13 00:31:04
Also in:
lkml
On Thu, 8 Jan 2026 23:23:03 +0900 "Masami Hiramatsu (Google)" [off-list ref] wrote:
quoted hunk ↗ jump to hunk
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) [off-list ref]