false,
rctx.transaction);
+ pg->init_collection_pool_opts();
+
pg->handle_initialize(&rctx);
pg->handle_activate_map(&rctx);
child,
split_bits);
+ child->init_collection_pool_opts();
+
child->finish_split_stats(*stat_iter, rctx->transaction);
child->unlock();
}
set_role(-1);
}
+ // init pool options
+ store->set_collection_opts(ch, pool.info.opts);
+
PG::RecoveryCtx rctx(0, 0, 0, new ObjectStore::Transaction);
handle_initialize(&rctx);
// note: we don't activate here because we know the OSD will advance maps
recovery_state.handle_event(q, 0);
}
-void PG::update_store_with_options()
+void PG::init_collection_pool_opts()
{
auto r = osd->store->set_collection_opts(ch, pool.info.opts);
- if(r < 0 && r != -EOPNOTSUPP) {
+ if (r < 0 && r != -EOPNOTSUPP) {
derr << __func__ << " set_collection_opts returns error:" << r << dendl;
}
}
+void PG::update_store_with_options()
+{
+ init_collection_pool_opts();
+}
+
struct C_DeleteMore : public Context {
PGRef pg;
epoch_t epoch;
// abstract bits
friend class FlushState;
+public:
+ void init_collection_pool_opts();
+protected:
virtual void on_role_change() = 0;
virtual void on_pool_change() = 0;
virtual void on_change(ObjectStore::Transaction *t) = 0;