summaryrefslogtreecommitdiff
path: root/drivers/md/persistent-data/dm-btree.h
diff options
context:
space:
mode:
authorJoe Thornber <ejt@redhat.com>2015-04-13 09:41:44 +0100
committerMike Snitzer <snitzer@redhat.com>2015-06-11 17:13:03 -0400
commit4ec331c3ea7ec94f28aa1c62a279cfa1cfe3c91b (patch)
tree3f418420e7ebdc43c8ff954788143126586ea4bc /drivers/md/persistent-data/dm-btree.h
parent0f24b79b52730e15d9e3386ce27da2110eb4597d (diff)
dm btree: add dm_btree_remove_leaves()
Removes a range of leaf values from the tree. Signed-off-by: Joe Thornber <ejt@redhat.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Diffstat (limited to 'drivers/md/persistent-data/dm-btree.h')
-rw-r--r--drivers/md/persistent-data/dm-btree.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/md/persistent-data/dm-btree.h b/drivers/md/persistent-data/dm-btree.h
index dacfc34180b4..11d8cf78621d 100644
--- a/drivers/md/persistent-data/dm-btree.h
+++ b/drivers/md/persistent-data/dm-btree.h
@@ -135,6 +135,15 @@ int dm_btree_remove(struct dm_btree_info *info, dm_block_t root,
uint64_t *keys, dm_block_t *new_root);
/*
+ * Removes values between 'keys' and keys2, where keys2 is keys with the
+ * final key replaced with 'end_key'. 'end_key' is the one-past-the-end
+ * value. 'keys' may be altered.
+ */
+int dm_btree_remove_leaves(struct dm_btree_info *info, dm_block_t root,
+ uint64_t *keys, uint64_t end_key,
+ dm_block_t *new_root, unsigned *nr_removed);
+
+/*
* Returns < 0 on failure. Otherwise the number of key entries that have
* been filled out. Remember trees can have zero entries, and as such have
* no lowest key.