From: Greg Farnum Date: Wed, 12 Mar 2014 16:48:04 +0000 (-0700) Subject: Server: use MutationRef instead of raw pointer X-Git-Tag: v0.80-rc1~84^2~9 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a6a080000502b84a20fcbcd05e3f68098e34003a;p=ceph.git Server: use MutationRef instead of raw pointer Signed-off-by: Greg Farnum --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 69f302b37672..80db7117f9a5 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -4663,9 +4663,9 @@ void Server::_committed_slave(MDRequestRef& mdr) struct C_MDS_LoggedLinkRollback : public Context { Server *server; - Mutation *mut; + MutationRef mut; MDRequestRef mdr; - C_MDS_LoggedLinkRollback(Server *s, Mutation *m, MDRequestRef& r) : server(s), mut(m), mdr(r) {} + C_MDS_LoggedLinkRollback(Server *s, MutationRef& m, MDRequestRef& r) : server(s), mut(m), mdr(r) {} void finish(int r) { server->_link_rollback_finish(mut, mdr); } @@ -4687,7 +4687,7 @@ void Server::do_link_rollback(bufferlist &rbl, int master, MDRequestRef& mdr) mds->mdcache->add_rollback(rollback.reqid, master); // need to finish this update before resolve finishes assert(mdr || mds->is_resolve()); - Mutation *mut = new Mutation(rollback.reqid); + MutationRef mut(new MutationImpl(rollback.reqid)); mut->ls = mds->mdlog->get_current_segment(); CInode *in = mds->mdcache->get_inode(rollback.ino); @@ -4731,7 +4731,7 @@ void Server::do_link_rollback(bufferlist &rbl, int master, MDRequestRef& mdr) mdlog->flush(); } -void Server::_link_rollback_finish(Mutation *mut, MDRequestRef& mdr) +void Server::_link_rollback_finish(MutationRef& mut, MDRequestRef& mdr) { dout(10) << "_link_rollback_finish" << dendl; @@ -4744,7 +4744,6 @@ void Server::_link_rollback_finish(Mutation *mut, MDRequestRef& mdr) mds->mdcache->finish_rollback(mut->reqid); mut->cleanup(); - delete mut; } @@ -6863,7 +6862,7 @@ void Server::_commit_slave_rename(MDRequestRef& mdr, int r, } } -void _rollback_repair_dir(Mutation *mut, CDir *dir, rename_rollback::drec &r, utime_t ctime, +void _rollback_repair_dir(MutationRef& mut, CDir *dir, rename_rollback::drec &r, utime_t ctime, bool isdir, int linkunlink, nest_info_t &rstat) { fnode_t *pf; @@ -6896,14 +6895,14 @@ void _rollback_repair_dir(Mutation *mut, CDir *dir, rename_rollback::drec &r, ut struct C_MDS_LoggedRenameRollback : public Context { Server *server; - Mutation *mut; + MutationRef mut; MDRequestRef mdr; CDentry *srcdn; version_t srcdnpv; CDentry *destdn; CDentry *straydn; bool finish_mdr; - C_MDS_LoggedRenameRollback(Server *s, Mutation *m, MDRequestRef& r, + C_MDS_LoggedRenameRollback(Server *s, MutationRef& m, MDRequestRef& r, CDentry *sd, version_t pv, CDentry *dd, CDentry *st, bool f) : server(s), mut(m), mdr(r), srcdn(sd), srcdnpv(pv), destdn(dd), @@ -6925,7 +6924,7 @@ void Server::do_rename_rollback(bufferlist &rbl, int master, MDRequestRef& mdr, // need to finish this update before sending resolve to claim the subtree mds->mdcache->add_rollback(rollback.reqid, master); - Mutation *mut = new Mutation(rollback.reqid); + MutationRef mut(new MutationImpl(rollback.reqid)); mut->ls = mds->mdlog->get_current_segment(); CDentry *srcdn = NULL; @@ -7130,7 +7129,7 @@ void Server::do_rename_rollback(bufferlist &rbl, int master, MDRequestRef& mdr, mdlog->flush(); } -void Server::_rename_rollback_finish(Mutation *mut, MDRequestRef& mdr, CDentry *srcdn, +void Server::_rename_rollback_finish(MutationRef& mut, MDRequestRef& mdr, CDentry *srcdn, version_t srcdnpv, CDentry *destdn, CDentry *straydn, bool finish_mdr) { @@ -7197,7 +7196,6 @@ void Server::_rename_rollback_finish(Mutation *mut, MDRequestRef& mdr, CDentry * mds->mdcache->finish_rollback(mut->reqid); mut->cleanup(); - delete mut; } /* This function DOES put the passed message before returning*/ diff --git a/src/mds/Server.h b/src/mds/Server.h index f4bdc582fecf..95a5ae423809 100644 --- a/src/mds/Server.h +++ b/src/mds/Server.h @@ -201,7 +201,7 @@ public: void _committed_slave(MDRequestRef& mdr); // use for rename, too void handle_slave_link_prep_ack(MDRequestRef& mdr, MMDSSlaveRequest *m); void do_link_rollback(bufferlist &rbl, int master, MDRequestRef& mdr); - void _link_rollback_finish(Mutation *mut, MDRequestRef& mdr); + void _link_rollback_finish(MutationRef& mut, MDRequestRef& mdr); // unlink void handle_client_unlink(MDRequestRef& mdr); @@ -251,7 +251,7 @@ public: void _logged_slave_rename(MDRequestRef& mdr, CDentry *srcdn, CDentry *destdn, CDentry *straydn); void _commit_slave_rename(MDRequestRef& mdr, int r, CDentry *srcdn, CDentry *destdn, CDentry *straydn); void do_rename_rollback(bufferlist &rbl, int master, MDRequestRef& mdr, bool finish_mdr=false); - void _rename_rollback_finish(Mutation *mut, MDRequestRef& mdr, CDentry *srcdn, version_t srcdnpv, + void _rename_rollback_finish(MutationRef& mut, MDRequestRef& mdr, CDentry *srcdn, version_t srcdnpv, CDentry *destdn, CDentry *staydn, bool finish_mdr); };