Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 168fd7d2 authored by Chris Mason's avatar Chris Mason
Browse files

Fix btrfs_next_leaf to check for new items after dropping locks

parent 594a24eb
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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;
	}