• Steven Rostedt (Google)'s avatar
    tracefs/eventfs: Use root and instance inodes as default ownership · 8186fff7
    Steven Rostedt (Google) authored
    Instead of walking the dentries on mount/remount to update the gid values of
    all the dentries if a gid option is specified on mount, just update the root
    inode. Add .getattr, .setattr, and .permissions on the tracefs inode
    operations to update the permissions of the files and directories.
    
    For all files and directories in the top level instance:
    
     /sys/kernel/tracing/*
    
    It will use the root inode as the default permissions. The inode that
    represents: /sys/kernel/tracing (or wherever it is mounted).
    
    When an instance is created:
    
     mkdir /sys/kernel/tracing/instance/foo
    
    The directory "foo" and all its files and directories underneath will use
    the default of what foo is when it was created. A remount of tracefs will
    not affect it.
    
    If a user were to modify the permissions of any file or directory in
    tracefs, it will also no longer be modified by a change in ownership of a
    remount.
    
    The events directory, if it is in the top level instance, will use the
    tracefs root inode as the default ownership for itself and all the files and
    directories below it.
    
    For the events directory in an instance ("foo"), it will keep the ownership
    of what it was when it was created, and that will be used as the default
    ownership for the files and directories beneath it.
    
    Link: https://lore.kernel.org/linux-trace-kernel/CAHk-=wjVdGkjDXBbvLn2wbZnqP4UsH46E3gqJ9m7UG6DpX2+WA@mail.gmail.com/
    Link: https://lore.kernel.org/linux-trace-kernel/20240103215016.1e0c9811@gandalf.local.home
    
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Al Viro <viro@ZenIV.linux.org.uk>
    Cc: Christian Brauner <brauner@kernel.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
    8186fff7
inode.c 20.5 KB