bool librados::RadosClient::pool_requires_alignment(int64_t pool_id)
{
- int r = wait_for_osdmap();
+ bool requires;
+ int r = pool_requires_alignment2(pool_id, &requires);
if (r < 0) {
- return r;
+ // Cast answer to false, this is a little bit problematic
+ // since we really don't know the answer yet, say.
+ return false;
}
- const OSDMap *osdmap = objecter->get_osdmap_read();
- bool ret = osdmap->have_pg_pool(pool_id) &&
- osdmap->get_pg_pool(pool_id)->requires_aligned_append();
- objecter->put_osdmap_read();
- return ret;
+ return requires;
}
// a safer version of pool_requires_alignment
uint64_t librados::RadosClient::pool_required_alignment(int64_t pool_id)
{
- int r = wait_for_osdmap();
+ uint64_t alignment;
+ int r = pool_required_alignment2(pool_id, &alignment);
if (r < 0) {
- return r;
+ return 0;
}
- const OSDMap *osdmap = objecter->get_osdmap_read();
- uint64_t ret = osdmap->have_pg_pool(pool_id) ?
- osdmap->get_pg_pool(pool_id)->required_alignment() : 0;
- objecter->put_osdmap_read();
- return ret;
+ return alignment;
}
// a safer version of pool_required_alignment