On 2019/11/5 上午5:44, David Sterba wrote: > On Mon, Nov 04, 2019 at 08:53:52PM +0100, David Sterba wrote: >> On Wed, Oct 30, 2019 at 04:59:17AM +0000, Qu WenRuo wrote: >>> >>> >>> On 2019/10/10 上午10:39, Qu Wenruo wrote: >>>> Refactor the work inside the loop of btrfs_read_block_groups() into one >>>> separate function, read_one_block_group(). >>>> >>>> This allows read_one_block_group to be reused for later BG_TREE feature. >>>> >>>> The refactor does the following extra fix: >>>> - Use btrfs_fs_incompat() to replace open-coded feature check >>>> >>>> Signed-off-by: Qu Wenruo <wqu@xxxxxxxx> >>>> Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx> >>>> Reviewed-by: Anand Jain <anand.jain@xxxxxxxxxx> >>> >>> Hi David, >>> >>> Mind to add this patch to for-next branch? >>> >>> Considering the recent changes to struct btrfs_block_group_cache, there >>> is some considerable conflicts. >> >> I see, as the patch is idependent I'll add it. >> >>> It would be much easier to solve them sooner than later. >>> If needed I could send a newer version based on latest for-next branch. >> >> I've fixed the conflicts, but please have a look anyway. The change was >> cache->item to local block group item and rename of found_key to key in >> read_one_block_group. > > And it crashes during the self-tests, the patch is in branch > misc-next-with-bg-refactoring in my github tree, please have a look. > I've removed it from misc-next for now as I need to test for-next, but > it's probably going to be some trivial typo so the patch will be added > once it's found. Thanks. > Found the cause. It's missing cache->flags assignment. There is a line in the original patch: cache->flags = btrfs_block_group_flags(&cache->item); But not in the rebased one. Exactly the same bug I hit when developing the skinny-bg-tree feature. I'll send out the fix for it, with the removal of unneeded btrfs_item_key_to_cpu() call. Thanks, Qu
Attachment:
signature.asc
Description: OpenPGP digital signature
