diff options
author | Denis V. Lunev <den@openvz.org> | 2008-04-29 04:02:08 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-29 11:06:20 -0400 |
commit | 46fe74f2aed615c8c88164f4346b79c30cfd7c3d (patch) | |
tree | f07061c8847beb394c1c4d260cb6a3392ea53c8d | |
parent | 21ac295b42b8bdc3d677aba6bd7308a38de28a9b (diff) |
ext4: 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: <linux-ext4@vger.kernel.org>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | fs/ext4/mballoc.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c index 1efcb934c2d6..9d57695de746 100644 --- a/fs/ext4/mballoc.c +++ b/fs/ext4/mballoc.c | |||
@@ -2449,17 +2449,10 @@ static void ext4_mb_history_init(struct super_block *sb) | |||
2449 | int i; | 2449 | int i; |
2450 | 2450 | ||
2451 | if (sbi->s_mb_proc != NULL) { | 2451 | if (sbi->s_mb_proc != NULL) { |
2452 | struct proc_dir_entry *p; | 2452 | proc_create_data("mb_history", S_IRUGO, sbi->s_mb_proc, |
2453 | p = create_proc_entry("mb_history", S_IRUGO, sbi->s_mb_proc); | 2453 | &ext4_mb_seq_history_fops, sb); |
2454 | if (p) { | 2454 | proc_create_data("mb_groups", S_IRUGO, sbi->s_mb_proc, |
2455 | p->proc_fops = &ext4_mb_seq_history_fops; | 2455 | &ext4_mb_seq_groups_fops, sb); |
2456 | p->data = sb; | ||
2457 | } | ||
2458 | p = create_proc_entry("mb_groups", S_IRUGO, sbi->s_mb_proc); | ||
2459 | if (p) { | ||
2460 | p->proc_fops = &ext4_mb_seq_groups_fops; | ||
2461 | p->data = sb; | ||
2462 | } | ||
2463 | } | 2456 | } |
2464 | 2457 | ||
2465 | sbi->s_mb_history_max = 1000; | 2458 | sbi->s_mb_history_max = 1000; |