From: Li Zefan There is a race between create_proc_entry() and the assignment of file ops. proc_create() is invented to fix it. Signed-off-by: Li Zefan Cc: Paul Menage Signed-off-by: Andrew Morton --- kernel/cgroup.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff -puN kernel/cgroup.c~cgroup-switch-to-proc_create kernel/cgroup.c --- a/kernel/cgroup.c~cgroup-switch-to-proc_create +++ a/kernel/cgroup.c @@ -2540,7 +2540,6 @@ int __init cgroup_init(void) { int err; int i; - struct proc_dir_entry *entry; err = bdi_init(&cgroup_backing_dev_info); if (err) @@ -2556,9 +2555,7 @@ int __init cgroup_init(void) if (err < 0) goto out; - entry = create_proc_entry("cgroups", 0, NULL); - if (entry) - entry->proc_fops = &proc_cgroupstats_operations; + proc_create("cgroups", 0, NULL, &proc_cgroupstats_operations); out: if (err) _