aboutsummaryrefslogtreecommitdiffstats
path: root/ipc
diff options
context:
space:
mode:
authorDenis V. Lunev <den@openvz.org>2008-04-29 04:02:12 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-29 11:06:20 -0400
commit6a6375db13703b42dd51b28576d444bb73c541b9 (patch)
tree87ad672479234d5c6773b1f22522dd2eda244c30 /ipc
parent79da3664f61640057041bf172b1457e2d1969330 (diff)
sysvipc: use non-racy method for proc entries creation
Use proc_create_data() to make sure that ->proc_fops and ->data be setup before gluing PDE to main tree. Signed-off-by: Denis V. Lunev <den@openvz.org> Cc: Alexey Dobriyan <adobriyan@gmail.com> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Nadia Derbey <Nadia.Derbey@bull.net> Cc: Pierre Peiffer <peifferp@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'ipc')
-rw-r--r--ipc/util.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/ipc/util.c b/ipc/util.c
index 4c465cb22360..3339177b336c 100644
--- a/ipc/util.c
+++ b/ipc/util.c
@@ -165,13 +165,12 @@ void __init ipc_init_proc_interface(const char *path, const char *header,
165 iface->ids = ids; 165 iface->ids = ids;
166 iface->show = show; 166 iface->show = show;
167 167
168 pde = create_proc_entry(path, 168 pde = proc_create_data(path,
169 S_IRUGO, /* world readable */ 169 S_IRUGO, /* world readable */
170 NULL /* parent dir */); 170 NULL, /* parent dir */
171 if (pde) { 171 &sysvipc_proc_fops,
172 pde->data = iface; 172 iface);
173 pde->proc_fops = &sysvipc_proc_fops; 173 if (!pde) {
174 } else {
175 kfree(iface); 174 kfree(iface);
176 } 175 }
177} 176}