virtual bool pgb_is_primary() const = 0;
virtual OSDMapRef pgb_get_osdmap() const = 0;
virtual const pg_info_t &get_info() const = 0;
+ virtual const pg_pool_t &get_pool() const = 0;
virtual ObjectContextRef get_obc(
const hobject_t &hoid,
if (size)
data_subset.insert(0, size);
+ if (get_parent()->get_pool().cache_mode != pg_pool_t::CACHEMODE_NONE) {
+ dout(10) << __func__ << ": caching enabled, skipping clone subsets" << dendl;
+ return;
+ }
+
if (!cct->_conf->osd_recover_clone_overlap) {
dout(10) << "calc_head_subsets " << head << " -- osd_recover_clone_overlap disabled" << dendl;
return;
if (size)
data_subset.insert(0, size);
+ if (get_parent()->get_pool().cache_mode != pg_pool_t::CACHEMODE_NONE) {
+ dout(10) << __func__ << ": caching enabled, skipping clone subsets" << dendl;
+ return;
+ }
+
if (!cct->_conf->osd_recover_clone_overlap) {
dout(10) << "calc_clone_subsets " << soid << " -- osd_recover_clone_overlap disabled" << dendl;
return;
const pg_info_t &get_info() const {
return info;
}
+ const pg_pool_t &get_pool() const {
+ return pool.info;
+ }
ObjectContextRef get_obc(
const hobject_t &hoid,
map<string, bufferlist> &attrs) {