|
@@ -417,6 +417,19 @@ static struct ceph_pg_pool_info *__lookup_pg_pool(struct rb_root *root, int id)
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
|
+int ceph_pg_poolid_by_name(struct ceph_osdmap *map, const char *name)
|
|
|
+{
|
|
|
+ struct rb_node *rbp;
|
|
|
+
|
|
|
+ for (rbp = rb_first(&map->pg_pools); rbp; rbp = rb_next(rbp)) {
|
|
|
+ struct ceph_pg_pool_info *pi =
|
|
|
+ rb_entry(rbp, struct ceph_pg_pool_info, node);
|
|
|
+ if (pi->name && strcmp(pi->name, name) == 0)
|
|
|
+ return pi->id;
|
|
|
+ }
|
|
|
+ return -ENOENT;
|
|
|
+}
|
|
|
+
|
|
|
static void __remove_pg_pool(struct rb_root *root, struct ceph_pg_pool_info *pi)
|
|
|
{
|
|
|
rb_erase(&pi->node, root);
|