diff options
author | Sage Weil <sage@inktank.com> | 2013-03-27 13:19:03 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-03-27 13:22:12 -0700 |
commit | 1507443271fda933032ef0877aff1890d4fd5b63 (patch) | |
tree | 967fb9c5abf1d120adb0ecdc1f2b3d658e09b472 | |
parent | 6b6e0cef99e66b46ade35ab262f071982049bc22 (diff) | |
download | ceph-1507443271fda933032ef0877aff1890d4fd5b63.tar.gz |
osd: disallow classes with flags==0
They must be RD, WR, or something....
Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit 89c69016e1dddb9f3ca40fd699e4a995ef1e3eee)
-rw-r--r-- | src/osd/ClassHandler.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/osd/ClassHandler.cc b/src/osd/ClassHandler.cc index f6a5acfbe81..6675e9e4fc4 100644 --- a/src/osd/ClassHandler.cc +++ b/src/osd/ClassHandler.cc @@ -142,6 +142,11 @@ ClassHandler::ClassMethod *ClassHandler::ClassData::register_method(const char * cls_method_call_t func) { /* no need for locking, called under the class_init mutex */ + if (!flags) { + derr << "register_method " << name << "." << mname << " flags " << flags << " " << (void*)func + << " FAILED -- flags must be non-zero" << dendl; + return NULL; + } dout(10) << "register_method " << name << "." << mname << " flags " << flags << " " << (void*)func << dendl; ClassMethod& method = methods_map[mname]; method.func = func; |