osd: switch ClassHandler::get_method() to std::string.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
This commit is contained in:
Radoslaw Zarzynski 2019-07-30 15:37:54 +02:00
parent 5a8acb6868
commit 57330088d3
4 changed files with 13 additions and 11 deletions

View File

@ -257,15 +257,17 @@ ClassHandler::ClassFilter *ClassHandler::ClassData::register_cxx_filter(
return &filter;
}
ClassHandler::ClassMethod *ClassHandler::ClassData::_get_method(const char *mname)
ClassHandler::ClassMethod *ClassHandler::ClassData::_get_method(
const std::string& mname)
{
map<string, ClassHandler::ClassMethod>::iterator iter = methods_map.find(mname);
if (iter == methods_map.end())
return NULL;
return &(iter->second);
if (auto iter = methods_map.find(mname); iter != methods_map.end()) {
return &(iter->second);
} else {
return nullptr;
}
}
int ClassHandler::ClassData::get_method_flags(const char *mname)
int ClassHandler::ClassData::get_method_flags(const std::string& mname)
{
std::lock_guard l(handler->mutex);
ClassMethod *method = _get_method(mname);

View File

@ -69,7 +69,7 @@ public:
std::set<ClassData *> dependencies; /* our dependencies */
std::set<ClassData *> missing_dependencies; /* only missing dependencies */
ClassMethod *_get_method(const char *mname);
ClassMethod *_get_method(const std::string& mname);
ClassMethod *register_method(const char *mname,
int flags,
@ -83,11 +83,11 @@ public:
cls_cxx_filter_factory_t fn);
void unregister_filter(ClassFilter *method);
ClassMethod *get_method(const char *mname) {
ClassMethod *get_method(const std::string& mname) {
std::lock_guard l(handler->mutex);
return _get_method(mname);
}
int get_method_flags(const char *mname);
int get_method_flags(const std::string& mname);
ClassFilter *get_filter(const std::string &filter_name) {
std::lock_guard l(handler->mutex);

View File

@ -9961,7 +9961,7 @@ int OSD::init_op_flags(OpRequestRef& op)
r = -EIO;
return r;
}
int flags = cls->get_method_flags(mname.c_str());
int flags = cls->get_method_flags(mname);
if (flags < 0) {
if (flags == -ENOENT)
r = -EOPNOTSUPP;

View File

@ -5685,7 +5685,7 @@ int PrimaryLogPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
result = ClassHandler::get_instance().open_class(cname, &cls);
ceph_assert(result == 0); // init_op_flags() already verified this works.
ClassHandler::ClassMethod *method = cls->get_method(mname.c_str());
ClassHandler::ClassMethod *method = cls->get_method(mname);
if (!method) {
dout(10) << "call method " << cname << "." << mname << " does not exist" << dendl;
result = -EOPNOTSUPP;