From faa61bd6320d4baa11d7cdaca93976df395616a8 Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Tue, 19 May 2009 15:13:23 -0700 Subject: [PATCH] class: pass context to method execution --- src/common/ClassHandler.cc | 3 +-- src/common/ClassHandler.h | 2 +- src/osd/ReplicatedPG.cc | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/common/ClassHandler.cc b/src/common/ClassHandler.cc index db22d1970a5ff..5043f391f9ad0 100644 --- a/src/common/ClassHandler.cc +++ b/src/common/ClassHandler.cc @@ -154,12 +154,11 @@ void ClassHandler::ClassMethod::unregister() cls->unregister_method(this); } -int ClassHandler::ClassMethod::exec(bufferlist& indata, bufferlist& outdata) +int ClassHandler::ClassMethod::exec(cls_method_context_t ctx, bufferlist& indata, bufferlist& outdata) { char *out = NULL; int olen; int ret; - cls_method_context_t ctx = 0; ret = func(ctx, indata.c_str(), indata.length(), &out, &olen); if (out) outdata.append(out, olen); diff --git a/src/common/ClassHandler.h b/src/common/ClassHandler.h index aa11646da99fd..1289ab93780ae 100644 --- a/src/common/ClassHandler.h +++ b/src/common/ClassHandler.h @@ -24,7 +24,7 @@ public: struct ClassHandler::ClassData *cls; string name; cls_method_call_t func; - int exec(bufferlist& indata, bufferlist& outdata); + int exec(cls_method_context_t ctx, bufferlist& indata, bufferlist& outdata); void unregister(); }; diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index fb0ada7f6c9f4..7529eca204a7d 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -694,7 +694,7 @@ int ReplicatedPG::do_read_ops(MOSDOp *op, OpContext& ctx, result = -EINVAL; } else { dout(10) << "rdcall method " << cname << "." << mname << dendl; - result = method->exec(indata, outdata); + result = method->exec((cls_method_context_t)&ctx, indata, outdata); p->length = outdata.length(); data.claim_append(outdata); } -- 2.39.5