diff options
author | Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> | 2008-07-11 19:27:31 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2008-07-11 19:27:31 -0400 |
commit | 7061eba75ceb0835ba61e7cbd757a6f9c1e4af92 (patch) | |
tree | 9c70df3078c0543573a9f38bb60c6b0f54608c7a /fs/ext4/extents.c | |
parent | 6afd670713c9e7d5c5550e379dfedca8ffab4c90 (diff) |
ext4: Use inode preallocation with -o noextents
When mballoc is enabled, block allocation for old block-based
files are allocated using mballoc allocator instead of old
block-based allocator. The old ext3 block reservation is turned
off when mballoc is turned on.
However, the in-core preallocation is not enabled for block-based/
non-extent based file block allocation. This result in performance
regression, as now we don't have "reservation" ore in-core preallocation
to prevent interleaved fragmentation in multiple writes workload.
This patch fix this by enable per inode in-core preallocation
for non extent files when mballoc is used.
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/extents.c')
-rw-r--r-- | fs/ext4/extents.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 17ea8bb12aa5..c729b3507b46 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c | |||
@@ -187,7 +187,7 @@ ext4_ext_new_block(handle_t *handle, struct inode *inode, | |||
187 | ext4_fsblk_t goal, newblock; | 187 | ext4_fsblk_t goal, newblock; |
188 | 188 | ||
189 | goal = ext4_ext_find_goal(inode, path, le32_to_cpu(ex->ee_block)); | 189 | goal = ext4_ext_find_goal(inode, path, le32_to_cpu(ex->ee_block)); |
190 | newblock = ext4_new_block(handle, inode, goal, err); | 190 | newblock = ext4_new_meta_block(handle, inode, goal, err); |
191 | return newblock; | 191 | return newblock; |
192 | } | 192 | } |
193 | 193 | ||