diff options
author | Alex Tomas <alex@clusterfs.com> | 2008-07-11 19:27:31 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2008-07-11 19:27:31 -0400 |
commit | 64769240bd07f446f83660bb143bb609d8ab4910 (patch) | |
tree | db8bd8dda988adab6b4f6087a9b59ce504612009 /fs/ext4/super.c | |
parent | 29a814d2ee0e43c2980f33f91c1311ec06c0aa35 (diff) |
ext4: Add delayed allocation support in data=writeback mode
Updated with fixes from Mingming Cao <cmm@us.ibm.com> to unlock and
release the page from page cache if the delalloc write_begin failed, and
properly handle preallocated blocks. Also added a fix to clear
buffer_delay in block_write_full_page() after allocating a delayed
buffer.
Updated with fixes from Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
to update i_disksize properly and to add bmap support for delayed
allocation.
Updated with a fix from Valerie Clement <valerie.clement@bull.net> to
avoid filesystem corruption when the filesystem is mounted with the
delalloc option and blocksize < pagesize.
Signed-off-by: Alex Tomas <alex@clusterfs.com>
Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: Dave Kleikamp <shaggy@linux.vnet.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Diffstat (limited to 'fs/ext4/super.c')
-rw-r--r-- | fs/ext4/super.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 629d0fa27e3a..de9d3d0eb203 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
@@ -898,7 +898,7 @@ enum { | |||
898 | Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_quota, Opt_noquota, | 898 | Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_quota, Opt_noquota, |
899 | Opt_ignore, Opt_barrier, Opt_err, Opt_resize, Opt_usrquota, | 899 | Opt_ignore, Opt_barrier, Opt_err, Opt_resize, Opt_usrquota, |
900 | Opt_grpquota, Opt_extents, Opt_noextents, Opt_i_version, | 900 | Opt_grpquota, Opt_extents, Opt_noextents, Opt_i_version, |
901 | Opt_mballoc, Opt_nomballoc, Opt_stripe, | 901 | Opt_mballoc, Opt_nomballoc, Opt_stripe, Opt_delalloc, |
902 | }; | 902 | }; |
903 | 903 | ||
904 | static match_table_t tokens = { | 904 | static match_table_t tokens = { |
@@ -957,6 +957,7 @@ static match_table_t tokens = { | |||
957 | {Opt_nomballoc, "nomballoc"}, | 957 | {Opt_nomballoc, "nomballoc"}, |
958 | {Opt_stripe, "stripe=%u"}, | 958 | {Opt_stripe, "stripe=%u"}, |
959 | {Opt_resize, "resize"}, | 959 | {Opt_resize, "resize"}, |
960 | {Opt_delalloc, "delalloc"}, | ||
960 | {Opt_err, NULL}, | 961 | {Opt_err, NULL}, |
961 | }; | 962 | }; |
962 | 963 | ||
@@ -1335,6 +1336,9 @@ set_qf_format: | |||
1335 | return 0; | 1336 | return 0; |
1336 | sbi->s_stripe = option; | 1337 | sbi->s_stripe = option; |
1337 | break; | 1338 | break; |
1339 | case Opt_delalloc: | ||
1340 | set_opt(sbi->s_mount_opt, DELALLOC); | ||
1341 | break; | ||
1338 | default: | 1342 | default: |
1339 | printk (KERN_ERR | 1343 | printk (KERN_ERR |
1340 | "EXT4-fs: Unrecognized mount option \"%s\" " | 1344 | "EXT4-fs: Unrecognized mount option \"%s\" " |