From: Greg Farnum Date: Tue, 25 Nov 2014 00:18:14 +0000 (-0800) Subject: MDSContinuation: remove expectation that it's using an MDR X-Git-Tag: v10.0.1~51^2~23 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1627b45161982d1528c5e61464934130d5d241b1;p=ceph.git MDSContinuation: remove expectation that it's using an MDR The ValidationContinuation is wrapping an MDR, but other MDSContinuations might not. Remove that bit of the interface. Signed-off-by: Greg Farnum --- diff --git a/src/mds/CInode.cc b/src/mds/CInode.cc index cb5d8f283c3b..ae1d521205c4 100644 --- a/src/mds/CInode.cc +++ b/src/mds/CInode.cc @@ -3626,6 +3626,7 @@ void CInode::validate_disk_state(CInode::validated_data *results, { class ValidationContinuation : public MDSContinuation { public: + MDRequestRef mdr; CInode *in; CInode::validated_data *results; bufferlist bl; @@ -3640,8 +3641,9 @@ void CInode::validate_disk_state(CInode::validated_data *results, ValidationContinuation(CInode *i, CInode::validated_data *data_r, - MDRequestRef &mdr) : - MDSContinuation(mdr, i->mdcache->mds->server), + MDRequestRef &_mdr) : + MDSContinuation(i->mdcache->mds->server), + mdr(_mdr), in(i), results(data_r), shadow_in(NULL) { @@ -3826,6 +3828,10 @@ void CInode::validate_disk_state(CInode::validated_data *results, results->passed_validation = true; return true; } + + void _done() { + server->respond_to_request(mdr, get_rval()); + } }; diff --git a/src/mds/MDSContinuation.h b/src/mds/MDSContinuation.h index 82d178fc0cd9..0340a2084326 100644 --- a/src/mds/MDSContinuation.h +++ b/src/mds/MDSContinuation.h @@ -17,19 +17,15 @@ #include "mds/Server.h" class MDSContinuation : public Continuation { - MDRequestRef mdr; - Server *server; -public: - MDSContinuation(MDRequestRef& mdrequest, Server *s) : - Continuation(NULL), mdr(mdrequest), server(s) {} protected: - void _done() { - server->respond_to_request(mdr, get_rval()); - } + Server *server; MDSInternalContextBase *get_internal_callback(int stage) { return new MDSInternalContextWrapper(server->mds, get_callback(stage)); } MDSIOContextBase *get_io_callback(int stage) { return new MDSIOContextWrapper(server->mds, get_callback(stage)); } +public: + MDSContinuation(Server *s) : + Continuation(NULL), server(s) {} };