mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-15 18:04:36 +00:00
Properly call btrfs_search_slot while shrinking
The shrinking code used btrfs_next_leaf to find the next item, but this does not cow the blocks it touches. This fix calls search_slot after finding the next item to do appropriate cow and balancing. Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
parent
2552488345
commit
1372f8e609
@ -2434,7 +2434,15 @@ bg_next:
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
leaf = path->nodes[0];
|
leaf = path->nodes[0];
|
||||||
nritems = btrfs_header_nritems(leaf);
|
btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0]);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* btrfs_next_leaf doesn't cow buffers, we have to
|
||||||
|
* do the search again
|
||||||
|
*/
|
||||||
|
memcpy(&key, &found_key, sizeof(key));
|
||||||
|
btrfs_release_path(root, path);
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0]);
|
btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0]);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user