Merge branch 'proc-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 12 Jun 2020 19:38:18 +0000 (12:38 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 12 Jun 2020 19:38:18 +0000 (12:38 -0700)
Pull proc fix from Eric Biederman:
 "Much to my surprise syzbot found a very old bug in proc that the
  recent changes made easier to reproce. This bug is subtle enough it
  looks like it fooled everyone who should know better"

* 'proc-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
  proc: Use new_inode not new_inode_pseudo

fs/proc/inode.c
fs/proc/self.c
fs/proc/thread_self.c

index f40c253..28d6105 100644 (file)
@@ -617,7 +617,7 @@ const struct inode_operations proc_link_inode_operations = {
 
 struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
 {
-       struct inode *inode = new_inode_pseudo(sb);
+       struct inode *inode = new_inode(sb);
 
        if (inode) {
                inode->i_ino = de->low_ino;
index ca5158f..72cd69b 100644 (file)
@@ -43,7 +43,7 @@ int proc_setup_self(struct super_block *s)
        inode_lock(root_inode);
        self = d_alloc_name(s->s_root, "self");
        if (self) {
-               struct inode *inode = new_inode_pseudo(s);
+               struct inode *inode = new_inode(s);
                if (inode) {
                        inode->i_ino = self_inum;
                        inode->i_mtime = inode->i_atime = inode->i_ctime = current_time(inode);
index ac284f4..a553273 100644 (file)
@@ -43,7 +43,7 @@ int proc_setup_thread_self(struct super_block *s)
        inode_lock(root_inode);
        thread_self = d_alloc_name(s->s_root, "thread-self");
        if (thread_self) {
-               struct inode *inode = new_inode_pseudo(s);
+               struct inode *inode = new_inode(s);
                if (inode) {
                        inode->i_ino = thread_self_inum;
                        inode->i_mtime = inode->i_atime = inode->i_ctime = current_time(inode);