On Wed, Nov 17, 2010 at 09:37:29AM +0800, Yan, Zheng wrote: > 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. > We need to figure out a different way to deal with it then, at the moment we have users getting all of the different raid types across their disks because it's really easy to exit out of the main loop without an allocation, for example when doing the ideal caching stuff, we just look for the best block group to cache before even trying to make an allocation, so doing that loop will automatically make us change the raid type from what we asked for. Or in the case that the hint doesn't actually point at a compatible block group we'll get the first index, and if thats metadata we'll end up not using DUP if thats the allocation policy. We can deal with raid type conversion later, as it stands this stuff is broken. Thanks, Josef -- 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
