Revert "tracefs: Have tracefs directories not set OTH permission bits by default"
authorKalesh Singh <kaleshsingh@google.com>
Fri, 11 Feb 2022 17:36:26 +0000 (09:36 -0800)
committerKalesh Singh <kaleshsingh@google.com>
Fri, 11 Feb 2022 17:52:49 +0000 (17:52 +0000)
This reverts commit e2c27194fcd9f9703d927aeea104ec304bcf0ae3.

This change breaks Android userspace tools (tracepoint bpf programs,
simpleperf, atrace, perfetto, ...) that assume access to tracefs.

On Android T and S (QPR2) this is fixed by adding a gid mount option
in userspace, for devices with older kernels the permission change
needs to be reverted.

Bug: 217150407
Bug: 216676030
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
Change-Id: I53a63c42b4cf1133a6a2fc1674380ffd8f331392

fs/tracefs/inode.c

index 16dc063edc4cf5eee1616090f7809572f14ce0af..d908717a33f3ea08db5cf69c05e7461e509b5bda 100644 (file)
@@ -501,8 +501,7 @@ static struct dentry *__create_dir(const char *name, struct dentry *parent,
        if (unlikely(!inode))
                return failed_creating(dentry);
 
-       /* Do not set bits for OTH */
-       inode->i_mode = S_IFDIR | S_IRWXU | S_IRUSR| S_IRGRP | S_IXUSR | S_IXGRP;
+       inode->i_mode = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO;
        inode->i_op = ops;
        inode->i_fop = &simple_dir_operations;
        inode->i_uid = d_inode(dentry->d_parent)->i_uid;