Commit aa0cd28d authored by Joe Thornber's avatar Joe Thornber Committed by Mike Snitzer

dm btree remove: fix bug in remove_one()

remove_one() was not incrementing the key for the beginning of the
range, so not all entries were being removed.  This resulted in
discards that were not unmapping all blocks.

Fixes: 4ec331c3 ("dm btree: add dm_btree_remove_leaves()")
Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
parent bd4aaf8f
...@@ -689,6 +689,7 @@ static int remove_one(struct dm_btree_info *info, dm_block_t root, ...@@ -689,6 +689,7 @@ static int remove_one(struct dm_btree_info *info, dm_block_t root,
value_ptr(n, index)); value_ptr(n, index));
delete_at(n, index); delete_at(n, index);
keys[last_level] = k + 1ull;
} else } else
r = -ENODATA; r = -ENODATA;
......
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