diff options
| author | Denis V. Lunev <den@openvz.org> | 2008-04-29 04:02:31 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-29 11:06:22 -0400 |
| commit | c33fff0afbef4f0467c99e3f47ee7e98ae78c77e (patch) | |
| tree | d6b5f8dc77aa21de95bbca76c6be6056026cc1d8 /kernel/time | |
| parent | ac41cfd19bf77424519b962f8205ede51fceaac6 (diff) | |
kernel: use non-racy method for proc entries creation
Use proc_create()/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: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/time')
| -rw-r--r-- | kernel/time/timer_list.c | 5 | ||||
| -rw-r--r-- | kernel/time/timer_stats.c | 5 |
2 files changed, 2 insertions, 8 deletions
diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c index 67fe8fc21fb1..a40e20fd0001 100644 --- a/kernel/time/timer_list.c +++ b/kernel/time/timer_list.c | |||
| @@ -278,12 +278,9 @@ static int __init init_timer_list_procfs(void) | |||
| 278 | { | 278 | { |
| 279 | struct proc_dir_entry *pe; | 279 | struct proc_dir_entry *pe; |
| 280 | 280 | ||
| 281 | pe = create_proc_entry("timer_list", 0644, NULL); | 281 | pe = proc_create("timer_list", 0644, NULL, &timer_list_fops); |
| 282 | if (!pe) | 282 | if (!pe) |
| 283 | return -ENOMEM; | 283 | return -ENOMEM; |
| 284 | |||
| 285 | pe->proc_fops = &timer_list_fops; | ||
| 286 | |||
| 287 | return 0; | 284 | return 0; |
| 288 | } | 285 | } |
| 289 | __initcall(init_timer_list_procfs); | 286 | __initcall(init_timer_list_procfs); |
diff --git a/kernel/time/timer_stats.c b/kernel/time/timer_stats.c index 417da8c5bc72..c994530d166d 100644 --- a/kernel/time/timer_stats.c +++ b/kernel/time/timer_stats.c | |||
| @@ -415,12 +415,9 @@ static int __init init_tstats_procfs(void) | |||
| 415 | { | 415 | { |
| 416 | struct proc_dir_entry *pe; | 416 | struct proc_dir_entry *pe; |
| 417 | 417 | ||
| 418 | pe = create_proc_entry("timer_stats", 0644, NULL); | 418 | pe = proc_create("timer_stats", 0644, NULL, &tstats_fops); |
| 419 | if (!pe) | 419 | if (!pe) |
| 420 | return -ENOMEM; | 420 | return -ENOMEM; |
| 421 | |||
| 422 | pe->proc_fops = &tstats_fops; | ||
| 423 | |||
| 424 | return 0; | 421 | return 0; |
| 425 | } | 422 | } |
| 426 | __initcall(init_tstats_procfs); | 423 | __initcall(init_tstats_procfs); |
