• liubo's avatar
    Btrfs: fix oops while writing data to SSD partitions · ff1f2b44
    liubo authored
    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: default avatarLiu Bo <liubo2009@cn.fujitsu.com>
    Acked-by: default avatarJosef Bacik <josef@redhat.com>
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
    ff1f2b44
extent-tree.c 193 KB