mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 22:51:42 +00:00
Btrfs: fix oops while writing data to SSD partitions
Here I have a two SSD-partitions btrfs, and they are defaultly set to "data=raid0, metadata=raid1", then I try to fill my btrfs partition till "No space left on device", via "dd if=/dev/zero of=/mnt/btrfs/tmp". I get an oops panic from kernel BUG at fs/btrfs/extent-tree.c:5199!, which refers to find_free_extent's BUG_ON(index != get_block_group_index(block_group)); In SSD mode, in order to find enough space to alloc, we may check the block_group cache which has been checked sometime before, but the index is not updated, where it hits the BUG_ON. Signed-off-by: Liu Bo <liubo2009@cn.fujitsu.com> Acked-by: Josef Bacik <josef@redhat.com> Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
parent
61cfea9bb8
commit
ff1f2b4407
@ -5079,7 +5079,9 @@ have_block_group:
|
||||
* group is does point to and try again
|
||||
*/
|
||||
if (!last_ptr_loop && last_ptr->block_group &&
|
||||
last_ptr->block_group != block_group) {
|
||||
last_ptr->block_group != block_group &&
|
||||
index <=
|
||||
get_block_group_index(last_ptr->block_group)) {
|
||||
|
||||
btrfs_put_block_group(block_group);
|
||||
block_group = last_ptr->block_group;
|
||||
|
Loading…
Reference in New Issue
Block a user