count_snapshots: Properly update the leaf pointer after btrfs_next_leaf
Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
parent
98ed51747b
commit
bd09835d9a
|
@ -693,7 +693,6 @@ u32 btrfs_count_snapshots_in_path(struct btrfs_root *root,
|
||||||
u64 root_objectid = root->root_key.objectid;
|
u64 root_objectid = root->root_key.objectid;
|
||||||
u32 total_count = 0;
|
u32 total_count = 0;
|
||||||
u32 cur_count;
|
u32 cur_count;
|
||||||
u32 refs;
|
|
||||||
u32 nritems;
|
u32 nritems;
|
||||||
int ret;
|
int ret;
|
||||||
struct btrfs_key key;
|
struct btrfs_key key;
|
||||||
|
@ -729,8 +728,8 @@ again:
|
||||||
}
|
}
|
||||||
|
|
||||||
item = btrfs_item_ptr(l, path->slots[0], struct btrfs_extent_item);
|
item = btrfs_item_ptr(l, path->slots[0], struct btrfs_extent_item);
|
||||||
refs = btrfs_extent_refs(l, item);
|
|
||||||
while (1) {
|
while (1) {
|
||||||
|
l = path->nodes[0];
|
||||||
nritems = btrfs_header_nritems(l);
|
nritems = btrfs_header_nritems(l);
|
||||||
if (path->slots[0] >= nritems) {
|
if (path->slots[0] >= nritems) {
|
||||||
ret = btrfs_next_leaf(extent_root, path);
|
ret = btrfs_next_leaf(extent_root, path);
|
||||||
|
@ -741,6 +740,7 @@ again:
|
||||||
btrfs_item_key_to_cpu(l, &found_key, path->slots[0]);
|
btrfs_item_key_to_cpu(l, &found_key, path->slots[0]);
|
||||||
if (found_key.objectid != bytenr)
|
if (found_key.objectid != bytenr)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (found_key.type != BTRFS_EXTENT_REF_KEY) {
|
if (found_key.type != BTRFS_EXTENT_REF_KEY) {
|
||||||
path->slots[0]++;
|
path->slots[0]++;
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -208,7 +208,7 @@ again:
|
||||||
}
|
}
|
||||||
|
|
||||||
start = extent_end;
|
start = extent_end;
|
||||||
} else if (found_type == BTRFS_FILE_EXTENT_INLINE) {
|
} else {
|
||||||
goto not_found;
|
goto not_found;
|
||||||
}
|
}
|
||||||
loop:
|
loop:
|
||||||
|
|
Loading…
Reference in a new issue