mirror of https://gitee.com/openkylin/linux.git
Fix btrfs_next_leaf to check for new items after dropping locks
Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
parent
594a24eb0e
commit
168fd7d271
|
@ -2999,7 +2999,14 @@ int btrfs_next_leaf(struct btrfs_root *root, struct btrfs_path *path)
|
|||
return ret;
|
||||
|
||||
nritems = btrfs_header_nritems(path->nodes[0]);
|
||||
/*
|
||||
* by releasing the path above we dropped all our locks. A balance
|
||||
* could have added more items next to the key that used to be
|
||||
* at the very end of the block. So, check again here and
|
||||
* advance the path if there are now more items available.
|
||||
*/
|
||||
if (nritems > 0 && path->slots[0] < nritems - 1) {
|
||||
path->slots[0]++;
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue