}
return false;
}
- bool create_pool(int64_t poolid, uint32_t pg_num,
+ void create_pool(int64_t poolid, uint32_t pg_num,
epoch_t created, utime_t modified) {
- if (created_pools.count(poolid) == 0) {
- auto& c = queue[poolid];
- c.created = created;
- c.modified = modified;
- c.end = pg_num;
- created_pools.insert(poolid);
- return true;
- } else {
- return false;
- }
+ ceph_assert(created_pools.count(poolid) == 0);
+ auto& c = queue[poolid];
+ c.created = created;
+ c.modified = modified;
+ c.end = pg_num;
+ created_pools.insert(poolid);
}
unsigned remove_pool(int64_t removed_pool) {
const unsigned total = pgs.size();
unsigned queued = 0;
for (auto& p : pools) {
int64_t poolid = p.first;
+ if (creating_pgs->created_pools.count(poolid)) {
+ dout(10) << __func__ << " already created " << poolid << dendl;
+ continue;
+ }
const pg_pool_t& pool = p.second;
int ruleno = osdmap.crush->find_rule(pool.get_crush_rule(),
pool.get_type(), pool.get_size());
}
dout(10) << __func__ << " queueing pool create for " << poolid
<< " " << pool << dendl;
- if (creating_pgs->create_pool(poolid, pool.get_pg_num(),
- created, modified)) {
- queued++;
- }
+ creating_pgs->create_pool(poolid, pool.get_pg_num(),
+ created, modified);
+ queued++;
}
return queued;
}