Message ID | 4A9DE3E5.8080104@rs.jp.nec.com |
---|---|
State | Accepted, archived |
Headers | show |
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 >
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
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 --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; }