From fd51c234878ce85fee65b1fb2a6d8f89a85f2801 Mon Sep 17 00:00:00 2001 From: Akira Fujita Date: Tue, 24 Nov 2009 10:19:57 -0500 Subject: [PATCH] --- yaml --- r: 174389 b: refs/heads/master c: 94d7c16cbbbd0e03841fcf272bcaf0620ad39618 h: refs/heads/master i: 174387: c4e9d54767527ab660dc9c4acbf725b27a18f2a0 v: v3 --- [refs] | 2 +- trunk/fs/ext4/move_extent.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 352790e3f476..f8b62f8a17ef 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9084d4719784b00ff0bf9c9580007fac8277dbcb +refs/heads/master: 94d7c16cbbbd0e03841fcf272bcaf0620ad39618 diff --git a/trunk/fs/ext4/move_extent.c b/trunk/fs/ext4/move_extent.c index 5a106e02fd9c..3478889e00b3 100644 --- a/trunk/fs/ext4/move_extent.c +++ b/trunk/fs/ext4/move_extent.c @@ -1289,10 +1289,6 @@ ext4_move_extents(struct file *o_filp, struct file *d_filp, ext4_ext_get_actual_len(ext_cur), block_end + 1) - max(le32_to_cpu(ext_cur->ee_block), block_start); - /* Discard preallocations of two inodes */ - ext4_discard_preallocations(orig_inode); - ext4_discard_preallocations(donor_inode); - while (!last_extent && le32_to_cpu(ext_cur->ee_block) <= block_end) { seq_blocks += add_blocks; @@ -1410,6 +1406,11 @@ ext4_move_extents(struct file *o_filp, struct file *d_filp, } out: + if (*moved_len) { + ext4_discard_preallocations(orig_inode); + ext4_discard_preallocations(donor_inode); + } + if (orig_path) { ext4_ext_drop_refs(orig_path); kfree(orig_path);