On Tue, Dec 14, 2010 at 9:33 AM, Chris Mason <chris.mason@xxxxxxxxxx> wrote: > Excerpts from Yan, Zheng's message of 2010-11-16 20:38:23 -0500: >> On Wed, Nov 17, 2010 at 5:22 AM, Josef Bacik <josef@xxxxxxxxxx> wrote: >> > There is a bug in find_free_extent where if we don't find a free extent in the >> > raid type we are looking for, we loop through to the next raid type. This is >> > not ok since we need to make sure we honor the raid types we are given. So >> > instead kill this check and get the proper index for the raid type we want from >> > the allocator. Thanks, >> > >> >> Loop through raid types is for handling failure in the middle of raid type >> conversion. > > The problem is that nothing prevents it from looping back to a raid0 > chunk when we really want raid1 or raid10. And mkfs leaves behind a > small raid0 chunk (4MB) that is uses as it assembles all the devices. check code at end of btrfs_read_block_groups, it prevents allocating from raid0 when there are mirrored block groups. > > I confirmed that we often use the small raid0 chunk even in raid1 or > raid10. > > Please take a look at this commit: > > http://git.kernel.org/?p=linux/kernel/git/mason/btrfs-unstable.git;a=commit;h=83a50de97fe96aca82389e061862ed760ece2283 > > -chris > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
