lkml.org 
[lkml]   [2021]   [Dec]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[for-linus][PATCH 1/5] tracefs: Have new files inherit the ownership of their parent
    From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

    If directories in tracefs have their ownership changed, then any new files
    and directories that are created under those directories should inherit
    the ownership of the director they are created in.

    Link: https://lkml.kernel.org/r/20211208075720.4855d180@gandalf.local.home

    Cc: Kees Cook <keescook@chromium.org>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Yabin Cui <yabinc@google.com>
    Cc: Christian Brauner <christian.brauner@ubuntu.com>
    Cc: stable@vger.kernel.org
    Fixes: 4282d60689d4f ("tracefs: Add new tracefs file system")
    Reported-by: Kalesh Singh <kaleshsingh@google.com>
    Reported: https://lore.kernel.org/all/CAC_TJve8MMAv+H_NdLSJXZUSoxOEq2zB_pVaJ9p=7H6Bu3X76g@mail.gmail.com/
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    ---
    fs/tracefs/inode.c | 4 ++++
    1 file changed, 4 insertions(+)

    diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c
    index 925a621b432e..06cf0534cc60 100644
    --- a/fs/tracefs/inode.c
    +++ b/fs/tracefs/inode.c
    @@ -414,6 +414,8 @@ struct dentry *tracefs_create_file(const char *name, umode_t mode,
    inode->i_mode = mode;
    inode->i_fop = fops ? fops : &tracefs_file_operations;
    inode->i_private = data;
    + inode->i_uid = d_inode(dentry->d_parent)->i_uid;
    + inode->i_gid = d_inode(dentry->d_parent)->i_gid;
    d_instantiate(dentry, inode);
    fsnotify_create(dentry->d_parent->d_inode, dentry);
    return end_creating(dentry);
    @@ -436,6 +438,8 @@ static struct dentry *__create_dir(const char *name, struct dentry *parent,
    inode->i_mode = S_IFDIR | S_IRWXU | S_IRUSR| S_IRGRP | S_IXUSR | S_IXGRP;
    inode->i_op = ops;
    inode->i_fop = &simple_dir_operations;
    + inode->i_uid = d_inode(dentry->d_parent)->i_uid;
    + inode->i_gid = d_inode(dentry->d_parent)->i_gid;

    /* directory inodes start off with i_nlink == 2 (for "." entry) */
    inc_nlink(inode);
    --
    2.33.0
    \
     
     \ /
      Last update: 2021-12-09 16:33    [W:2.142 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site