From: Lu Fengqi Date: Fri, 3 Nov 2017 08:28:05 +0000 (+0800) Subject: btrfs-progs: lowmem check: Fix false alert about referencer count mismatch X-Git-Tag: upstream/4.16.1~279 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=29379da543da18f40f0a780bd61823316968607c;p=platform%2Fupstream%2Fbtrfs-progs.git btrfs-progs: lowmem check: Fix false alert about referencer count mismatch The normal back reference counting doesn't care about the extent referred by the extent data in the shared leaf. The check_extent_data_backref function need to skip the leaf that owner mismatch with the root_id. Reported-by: Marc MERLIN Signed-off-by: Lu Fengqi Signed-off-by: David Sterba --- diff --git a/cmds-check.c b/cmds-check.c index 5750bb7..a93ac2c 100644 --- a/cmds-check.c +++ b/cmds-check.c @@ -12468,7 +12468,8 @@ static int check_extent_data_backref(struct btrfs_fs_info *fs_info, leaf = path.nodes[0]; slot = path.slots[0]; - if (slot >= btrfs_header_nritems(leaf)) + if (slot >= btrfs_header_nritems(leaf) || + btrfs_header_owner(leaf) != root_id) goto next; btrfs_item_key_to_cpu(leaf, &key, slot); if (key.objectid != objectid || key.type != BTRFS_EXTENT_DATA_KEY)