diff options
author | Zubin Mithra <zsm@chromium.org> | 2018-07-25 10:19:01 -0700 |
---|---|---|
committer | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2018-07-31 11:32:44 -0400 |
commit | 5248ee85603067e62a228402afd2fb68f957746b (patch) | |
tree | 2f9c99ec03cf8189bf1323ed80f3e04f34189ea3 | |
parent | c3bc8fd637a9623f5c507bd18f9677effbddf584 (diff) | |
download | lwn-5248ee85603067e62a228402afd2fb68f957746b.tar.gz lwn-5248ee85603067e62a228402afd2fb68f957746b.zip |
tracefs: Annotate tracefs_ops with __ro_after_init
tracefs_ops is initialized inside tracefs_create_instance_dir and not
modified after. tracefs_create_instance_dir allows for initialization
only once, and is called from create_trace_instances(marked __init),
which is called from tracer_init_tracefs(marked __init). Also, mark
tracefs_create_instance_dir as __init.
Link: http://lkml.kernel.org/r/20180725171901.4468-1-zsm@chromium.org
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Zubin Mithra <zsm@chromium.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-rw-r--r-- | fs/tracefs/inode.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c index bea8ad876bf9..7098c49f3693 100644 --- a/fs/tracefs/inode.c +++ b/fs/tracefs/inode.c @@ -53,7 +53,7 @@ static const struct file_operations tracefs_file_operations = { static struct tracefs_dir_ops { int (*mkdir)(const char *name); int (*rmdir)(const char *name); -} tracefs_ops; +} tracefs_ops __ro_after_init; static char *get_dname(struct dentry *dentry) { @@ -478,7 +478,8 @@ struct dentry *tracefs_create_dir(const char *name, struct dentry *parent) * * Returns the dentry of the instances directory. */ -struct dentry *tracefs_create_instance_dir(const char *name, struct dentry *parent, +__init struct dentry *tracefs_create_instance_dir(const char *name, + struct dentry *parent, int (*mkdir)(const char *name), int (*rmdir)(const char *name)) { |