From: Sam Lang Date: Mon, 8 Apr 2013 14:09:41 +0000 (-0500) Subject: mds: Keep LogSegment ref for openc backtrace X-Git-Tag: v0.61~221^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3cdc61eca27d05de93b3693e618cb922294f76a4;p=ceph.git mds: Keep LogSegment ref for openc backtrace The MDRequest is destroyed once the client reply is sent, but we need the reference to the LogSegment for updating the backtrace, so store a temporary ref to the LogSegment for later. Fixes #4660. Signed-off-by: Sam Lang --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 293640e48701..dc7ea23f7633 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -2684,11 +2684,12 @@ public: mds->balancer->hit_inode(mdr->now, newi, META_POP_IWR); + mdr->ls->queue_backtrace_update(newi, newi->inode.layout.fl_pg_pool); + MClientReply *reply = new MClientReply(mdr->client_request, 0); reply->set_extra_bl(mdr->reply_extra_bl); mds->server->reply_request(mdr, reply); - mdr->ls->queue_backtrace_update(newi, newi->inode.layout.fl_pg_pool); assert(g_conf->mds_kill_openc_at != 1); } };