summaryrefslogtreecommitdiff
path: root/check/mode-lowmem.c
diff options
context:
space:
mode:
Diffstat (limited to 'check/mode-lowmem.c')
-rw-r--r--check/mode-lowmem.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/check/mode-lowmem.c b/check/mode-lowmem.c
index 9e845832..224129d8 100644
--- a/check/mode-lowmem.c
+++ b/check/mode-lowmem.c
@@ -3677,6 +3677,18 @@ static int check_extent_data_backref(struct btrfs_fs_info *fs_info,
if (slot >= btrfs_header_nritems(leaf) ||
btrfs_header_owner(leaf) != root_id)
goto next;
+ /*
+ * For tree blocks have been relocated, data backref are
+ * shared instead of keyed. Do not account it.
+ */
+ if (btrfs_header_flag(leaf, BTRFS_HEADER_FLAG_RELOC)) {
+ /*
+ * skip the leaf to speed up.
+ */
+ slot = btrfs_header_nritems(leaf);
+ goto next;
+ }
+
btrfs_item_key_to_cpu(leaf, &key, slot);
if (key.objectid != objectid ||
key.type != BTRFS_EXTENT_DATA_KEY)