summaryrefslogtreecommitdiffstats
path: root/fs/proc/self.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-03-06 13:31:36 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2019-03-06 13:31:36 -0500
commit8dcd175bc3d50b78413c56d5b17d4bddd77412ef (patch)
tree2c2fb25759b43f2e73830f07ef3b444d76825280 /fs/proc/self.c
parentafe6fe7036c6efdcb46cabc64bec9b6e4a005210 (diff)
parentfff04900ea79915939ef6a3aad78fca6511a3034 (diff)
Merge branch 'akpm' (patches from Andrew)
Merge misc updates from Andrew Morton: - a few misc things - ocfs2 updates - most of MM * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (159 commits) tools/testing/selftests/proc/proc-self-syscall.c: remove duplicate include proc: more robust bulk read test proc: test /proc/*/maps, smaps, smaps_rollup, statm proc: use seq_puts() everywhere proc: read kernel cpu stat pointer once proc: remove unused argument in proc_pid_lookup() fs/proc/thread_self.c: code cleanup for proc_setup_thread_self() fs/proc/self.c: code cleanup for proc_setup_self() proc: return exit code 4 for skipped tests mm,mremap: bail out earlier in mremap_to under map pressure mm/sparse: fix a bad comparison mm/memory.c: do_fault: avoid usage of stale vm_area_struct writeback: fix inode cgroup switching comment mm/huge_memory.c: fix "orig_pud" set but not used mm/hotplug: fix an imbalance with DEBUG_PAGEALLOC mm/memcontrol.c: fix bad line in comment mm/cma.c: cma_declare_contiguous: correct err handling mm/page_ext.c: fix an imbalance with kmemleak mm/compaction: pass pgdat to too_many_isolated() instead of zone mm: remove zone_lru_lock() function, access ->lru_lock directly ...
Diffstat (limited to 'fs/proc/self.c')
-rw-r--r--fs/proc/self.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/fs/proc/self.c b/fs/proc/self.c
index 127265e5c55f..57c0a1047250 100644
--- a/fs/proc/self.c
+++ b/fs/proc/self.c
@@ -38,6 +38,7 @@ int proc_setup_self(struct super_block *s)
38 struct inode *root_inode = d_inode(s->s_root); 38 struct inode *root_inode = d_inode(s->s_root);
39 struct pid_namespace *ns = proc_pid_ns(root_inode); 39 struct pid_namespace *ns = proc_pid_ns(root_inode);
40 struct dentry *self; 40 struct dentry *self;
41 int ret = -ENOMEM;
41 42
42 inode_lock(root_inode); 43 inode_lock(root_inode);
43 self = d_alloc_name(s->s_root, "self"); 44 self = d_alloc_name(s->s_root, "self");
@@ -51,20 +52,19 @@ int proc_setup_self(struct super_block *s)
51 inode->i_gid = GLOBAL_ROOT_GID; 52 inode->i_gid = GLOBAL_ROOT_GID;
52 inode->i_op = &proc_self_inode_operations; 53 inode->i_op = &proc_self_inode_operations;
53 d_add(self, inode); 54 d_add(self, inode);
55 ret = 0;
54 } else { 56 } else {
55 dput(self); 57 dput(self);
56 self = ERR_PTR(-ENOMEM);
57 } 58 }
58 } else {
59 self = ERR_PTR(-ENOMEM);
60 } 59 }
61 inode_unlock(root_inode); 60 inode_unlock(root_inode);
62 if (IS_ERR(self)) { 61
62 if (ret)
63 pr_err("proc_fill_super: can't allocate /proc/self\n"); 63 pr_err("proc_fill_super: can't allocate /proc/self\n");
64 return PTR_ERR(self); 64 else
65 } 65 ns->proc_self = self;
66 ns->proc_self = self; 66
67 return 0; 67 return ret;
68} 68}
69 69
70void __init proc_self_init(void) 70void __init proc_self_init(void)