diff mbox

[2/4] ext4: Remove unneeded BUG_ON() in ext4_move_extents()

Message ID 4A9DE3E5.8080104@rs.jp.nec.com
State Accepted, archived
Headers show

Commit Message

Akira Fujita Sept. 2, 2009, 3:17 a.m. UTC
ext4: Remove unneeded BUG_ON() in ext4_move_extents()

From: Akira Fujita <a-fujita@rs.jp.nec.com>

ext4_move_extents() checks with BUG_ON() whether
the exchanged blocks count accords with request blocks count.
But, if the target range (orig_start + len) includes sparse block(s),
'moved_len' (exchanged blocks count) does not accord with
'len' (request blocks count),
since sparse block is not counted in 'moved_len'.
Therefore we hit BUG_ON(), though it succeeded.

Signed-off-by: Akira Fujita <a-fujita@rs.jp.nec.com>
---
 fs/ext4/move_extent.c |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Peng Tao Sept. 2, 2009, 5:38 a.m. UTC | #1
2009/9/2 Akira Fujita <a-fujita@rs.jp.nec.com>:
> ext4: Remove unneeded BUG_ON() in ext4_move_extents()
>
> From: Akira Fujita <a-fujita@rs.jp.nec.com>
>
> ext4_move_extents() checks with BUG_ON() whether
> the exchanged blocks count accords with request blocks count.
> But, if the target range (orig_start + len) includes sparse block(s),
> 'moved_len' (exchanged blocks count) does not accord with
> 'len' (request blocks count),
> since sparse block is not counted in 'moved_len'.
> Therefore we hit BUG_ON(), though it succeeded.
I can confirm the bug in my test cases too.

>
> Signed-off-by: Akira Fujita <a-fujita@rs.jp.nec.com>
> ---
>  fs/ext4/move_extent.c |    3 ---
>  1 files changed, 0 insertions(+), 3 deletions(-)
>
> diff --git a/fs/ext4/move_extent.c b/fs/ext4/move_extent.c
> index 60ed567..643156a 100644
> --- a/fs/ext4/move_extent.c
> +++ b/fs/ext4/move_extent.c
> @@ -1323,8 +1323,5 @@ out2:
>        if (ret)
>                return ret;
>
> -       /* All of the specified blocks must be exchanged in succeed */
> -       BUG_ON(*moved_len != len);
> -
>        return 0;
>  }
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
Akira Fujita Sept. 2, 2009, 6:48 a.m. UTC | #2
Hi Peng,
Peng Tao wrote:
> 2009/9/2 Akira Fujita <a-fujita@rs.jp.nec.com>:
>> ext4: Remove unneeded BUG_ON() in ext4_move_extents()
>>
>> From: Akira Fujita <a-fujita@rs.jp.nec.com>
>>
>> ext4_move_extents() checks with BUG_ON() whether
>> the exchanged blocks count accords with request blocks count.
>> But, if the target range (orig_start + len) includes sparse block(s),
>> 'moved_len' (exchanged blocks count) does not accord with
>> 'len' (request blocks count),
>> since sparse block is not counted in 'moved_len'.
>> Therefore we hit BUG_ON(), though it succeeded.
> I can confirm the bug in my test cases too.

I am looking into the issues you reported before:
http://marc.info/?l=linux-ext4&m=124975192830024&w=2
http://marc.info/?l=linux-ext4&m=124992522305319&w=2

When I send patches to the list, please review and test them.

Regards,
Akira Fujita

--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Theodore Ts'o Sept. 6, 2009, 3:13 a.m. UTC | #3
On Wed, Sep 02, 2009 at 12:17:57PM +0900, Akira Fujita wrote:
> ext4: Remove unneeded BUG_ON() in ext4_move_extents()
> 
> From: Akira Fujita <a-fujita@rs.jp.nec.com>
> 
> ext4_move_extents() checks with BUG_ON() whether
> the exchanged blocks count accords with request blocks count.
> But, if the target range (orig_start + len) includes sparse block(s),
> 'moved_len' (exchanged blocks count) does not accord with
> 'len' (request blocks count),
> since sparse block is not counted in 'moved_len'.
> Therefore we hit BUG_ON(), though it succeeded.

Added to the ext4 patch queue.

					- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/fs/ext4/move_extent.c b/fs/ext4/move_extent.c
index 60ed567..643156a 100644
--- a/fs/ext4/move_extent.c
+++ b/fs/ext4/move_extent.c
@@ -1323,8 +1323,5 @@  out2:
 	if (ret)
 		return ret;

-	/* All of the specified blocks must be exchanged in succeed */
-	BUG_ON(*moved_len != len);
-
 	return 0;
 }