diff options
Diffstat (limited to 'fs/ext4/extents.c')
-rw-r--r-- | fs/ext4/extents.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index eb7be8f08e10..d0860f2d36d0 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c | |||
@@ -5245,13 +5245,14 @@ ext4_ext_shift_path_extents(struct ext4_ext_path *path, ext4_lblk_t shift, | |||
5245 | 5245 | ||
5246 | while (ex_start <= ex_last) { | 5246 | while (ex_start <= ex_last) { |
5247 | le32_add_cpu(&ex_start->ee_block, -shift); | 5247 | le32_add_cpu(&ex_start->ee_block, -shift); |
5248 | if (ex_start > | 5248 | /* Try to merge to the left. */ |
5249 | EXT_FIRST_EXTENT(path[depth].p_hdr)) { | 5249 | if ((ex_start > |
5250 | if (ext4_ext_try_to_merge_right(inode, | 5250 | EXT_FIRST_EXTENT(path[depth].p_hdr)) && |
5251 | path, ex_start - 1)) | 5251 | ext4_ext_try_to_merge_right(inode, |
5252 | ex_last--; | 5252 | path, ex_start - 1)) |
5253 | } | 5253 | ex_last--; |
5254 | ex_start++; | 5254 | else |
5255 | ex_start++; | ||
5255 | } | 5256 | } |
5256 | err = ext4_ext_dirty(handle, inode, path + depth); | 5257 | err = ext4_ext_dirty(handle, inode, path + depth); |
5257 | if (err) | 5258 | if (err) |