• Steven Rostedt (Google)'s avatar
    tracefs: Still use mount point as default permissions for instances · 6599bd55
    Steven Rostedt (Google) authored
    If the instances directory's permissions were never change, then have it
    and its children use the mount point permissions as the default.
    
    Currently, the permissions of instance directories are determined by the
    instance directory's permissions itself. But if the tracefs file system is
    remounted and changes the permissions, the instance directory and its
    children should use the new permission.
    
    But because both the instance directory and its children use the instance
    directory's inode for permissions, it misses the update.
    
    To demonstrate this:
    
      # cd /sys/kernel/tracing/
      # mkdir instances/foo
      # ls -ld instances/foo
     drwxr-x--- 5 root root 0 May  1 19:07 instances/foo
      # ls -ld instances
     drwxr-x--- 3 root root 0 May  1 18:57 instances
      # ls -ld current_tracer
     -rw-r----- 1 root root 0 May  1 18:57 current_tracer
    
      # mount -o remount,gid=1002 .
      # ls -ld instances
     drwxr-x--- 3 root root 0 May  1 18:57 instances
      # ls -ld instances/foo/
     drwxr-x--- 5 root root 0 May  1 19:07 instances/foo/
      # ls -ld current_tracer
     -rw-r----- 1 root lkp 0 May  1 18:57 current_tracer
    
    Notice that changing the group id to that of "lkp" did not affect the
    instances directory nor its children. It should have been:
    
      # ls -ld current_tracer
     -rw-r----- 1 root root 0 May  1 19:19 current_tracer
      # ls -ld instances/foo/
     drwxr-x--- 5 root root 0 May  1 19:25 instances/foo/
      # ls -ld instances
     drwxr-x--- 3 root root 0 May  1 19:19 instances
    
      # mount -o remount,gid=1002 .
      # ls -ld current_tracer
     -rw-r----- 1 root lkp 0 May  1 19:19 current_tracer
      # ls -ld instances
     drwxr-x--- 3 root lkp 0 May  1 19:19 instances
      # ls -ld instances/foo/
     drwxr-x--- 5 root lkp 0 May  1 19:25 instances/foo/
    
    Where all files were updated by the remount gid update.
    
    Link: https://lore.kernel.org/linux-trace-kernel/20240502200905.686838327@goodmis.org
    
    Cc: stable@vger.kernel.org
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Fixes: 8186fff7 ("tracefs/eventfs: Use root and instance inodes as default ownership")
    Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
    6599bd55
inode.c 21.1 KB