{
class ValidationContinuation : public MDSContinuation {
public:
+ MDRequestRef mdr;
CInode *in;
CInode::validated_data *results;
bufferlist bl;
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) {
results->passed_validation = true;
return true;
}
+
+ void _done() {
+ server->respond_to_request(mdr, get_rval());
+ }
};
#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) {}
};