Commit e2156867 authored by Hugo Mills's avatar Hugo Mills Committed by Chris Mason
Browse files

btrfs: Ensure the tree search ioctl returns the right number of records



Btrfs's tree search ioctl has a field to indicate that no more than a
given number of records should be returned. The ioctl doesn't honour
this, as the tested value is not incremented until the end of the
copy_to_sk function. This patch removes an unnecessary local variable,
and updates the num_found counter as each key is found in the tree.

Signed-off-by: default avatarHugo Mills <hugo@carfax.org.uk>
Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent 0956c798
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -1279,7 +1279,6 @@ static noinline int copy_to_sk(struct btrfs_root *root,
	int nritems;
	int i;
	int slot;
	int found = 0;
	int ret = 0;

	leaf = path->nodes[0];
@@ -1326,7 +1325,7 @@ static noinline int copy_to_sk(struct btrfs_root *root,
					   item_off, item_len);
			*sk_offset += item_len;
		}
		found++;
		(*num_found)++;

		if (*num_found >= sk->nr_items)
			break;
@@ -1345,7 +1344,6 @@ advance_key:
	} else
		ret = 1;
overflow:
	*num_found += found;
	return ret;
}