osd_operations/replicated_request.cc
osdmap_gate.cc
pg_map.cc
+ ${PROJECT_SOURCE_DIR}/src/osd/ClassHandler.cc
${PROJECT_SOURCE_DIR}/src/osd/PeeringState.cc
${PROJECT_SOURCE_DIR}/src/osd/PGPeeringEvent.cc
${PROJECT_SOURCE_DIR}/src/osd/PGStateUtils.cc
#include "messages/MPGStats.h"
#include "os/Transaction.h"
+#include "osd/ClassHandler.h"
#include "osd/PGPeeringEvent.h"
#include "osd/PeeringState.h"
msgr.get().set_auth_server(monc.get());
msgr.get().set_auth_client(monc.get());
}
+
+ if (local_conf()->osd_open_classes_on_start) {
+ const int r = ClassHandler::get_instance().open_all_classes();
+ if (r) {
+ logger().warn("{} warning: got an error loading one or more classes: {}",
+ __func__, cpp_strerror(r));
+ }
+ }
}
OSD::~OSD() = default;
ClassHandler& ClassHandler::get_instance()
{
+#ifdef WITH_SEASTAR
+ // the context is being used solely for:
+ // 1. random number generation (cls_gen_random_bytes)
+ // 2. accessing the configuration
+ // 3. logging
+ static CephContext cct;
+ static ClassHandler single(&cct);
+#else
static ClassHandler single(g_ceph_context);
+#endif // WITH_SEASTAR
return single;
}