diff options
author | Theodore Ts'o <tytso@mit.edu> | 2010-10-27 21:30:10 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2010-10-27 21:30:10 -0400 |
commit | bd2d0210cf22f2bd0cef72eb97cf94fc7d31d8cc (patch) | |
tree | f0d1902b7ff4294114614cc706855c3d6b131f73 /fs/ext4/super.c | |
parent | 1de3e3df917459422cb2aecac440febc8879d410 (diff) |
ext4: use bio layer instead of buffer layer in mpage_da_submit_io
Call the block I/O layer directly instad of going through the buffer
layer. This should give us much better performance and scalability,
as well as lowering our CPU utilization when doing buffered writeback.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/super.c')
-rw-r--r-- | fs/ext4/super.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 8a24e9be7cb0..e13b3c3534d7 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
@@ -4769,9 +4769,12 @@ static int __init init_ext4_fs(void) | |||
4769 | int err; | 4769 | int err; |
4770 | 4770 | ||
4771 | ext4_check_flag_values(); | 4771 | ext4_check_flag_values(); |
4772 | err = init_ext4_system_zone(); | 4772 | err = init_ext4_pageio(); |
4773 | if (err) | 4773 | if (err) |
4774 | return err; | 4774 | return err; |
4775 | err = init_ext4_system_zone(); | ||
4776 | if (err) | ||
4777 | goto out5; | ||
4775 | ext4_kset = kset_create_and_add("ext4", NULL, fs_kobj); | 4778 | ext4_kset = kset_create_and_add("ext4", NULL, fs_kobj); |
4776 | if (!ext4_kset) | 4779 | if (!ext4_kset) |
4777 | goto out4; | 4780 | goto out4; |
@@ -4812,6 +4815,8 @@ out3: | |||
4812 | kset_unregister(ext4_kset); | 4815 | kset_unregister(ext4_kset); |
4813 | out4: | 4816 | out4: |
4814 | exit_ext4_system_zone(); | 4817 | exit_ext4_system_zone(); |
4818 | out5: | ||
4819 | exit_ext4_pageio(); | ||
4815 | return err; | 4820 | return err; |
4816 | } | 4821 | } |
4817 | 4822 | ||
@@ -4827,6 +4832,7 @@ static void __exit exit_ext4_fs(void) | |||
4827 | remove_proc_entry("fs/ext4", NULL); | 4832 | remove_proc_entry("fs/ext4", NULL); |
4828 | kset_unregister(ext4_kset); | 4833 | kset_unregister(ext4_kset); |
4829 | exit_ext4_system_zone(); | 4834 | exit_ext4_system_zone(); |
4835 | exit_ext4_pageio(); | ||
4830 | } | 4836 | } |
4831 | 4837 | ||
4832 | MODULE_AUTHOR("Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others"); | 4838 | MODULE_AUTHOR("Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others"); |