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

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
...@@ -1279,7 +1279,6 @@ static noinline int copy_to_sk(struct btrfs_root *root, ...@@ -1279,7 +1279,6 @@ static noinline int copy_to_sk(struct btrfs_root *root,
int nritems; int nritems;
int i; int i;
int slot; int slot;
int found = 0;
int ret = 0; int ret = 0;
leaf = path->nodes[0]; leaf = path->nodes[0];
...@@ -1326,7 +1325,7 @@ static noinline int copy_to_sk(struct btrfs_root *root, ...@@ -1326,7 +1325,7 @@ static noinline int copy_to_sk(struct btrfs_root *root,
item_off, item_len); item_off, item_len);
*sk_offset += item_len; *sk_offset += item_len;
} }
found++; (*num_found)++;
if (*num_found >= sk->nr_items) if (*num_found >= sk->nr_items)
break; break;
...@@ -1345,7 +1344,6 @@ static noinline int copy_to_sk(struct btrfs_root *root, ...@@ -1345,7 +1344,6 @@ static noinline int copy_to_sk(struct btrfs_root *root,
} else } else
ret = 1; ret = 1;
overflow: overflow:
*num_found += found;
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment