]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
MDSContinuation: remove expectation that it's using an MDR
authorGreg Farnum <gfarnum@redhat.com>
Tue, 25 Nov 2014 00:18:14 +0000 (16:18 -0800)
committerYan, Zheng <zyan@redhat.com>
Wed, 4 Nov 2015 09:17:24 +0000 (17:17 +0800)
The ValidationContinuation is wrapping an MDR, but other MDSContinuations
might not. Remove that bit of the interface.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
src/mds/CInode.cc
src/mds/MDSContinuation.h

index cb5d8f283c3b68c2faf5a852103d54379dca7831..ae1d521205c49b053dbee3664918b1eeab6c0ac8 100644 (file)
@@ -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());
+    }
   };
 
 
index 82d178fc0cd9185d556621145f641dd79c92d578..0340a208432645d35138df117fb426be8d700863 100644 (file)
 #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) {}
 };