diff options
author | Sam Lang <sam.lang@inktank.com> | 2013-04-08 09:09:41 -0500 |
---|---|---|
committer | Sam Lang <sam.lang@inktank.com> | 2013-04-08 12:45:54 -0500 |
commit | 3cdc61eca27d05de93b3693e618cb922294f76a4 (patch) | |
tree | 5798ad69909e3af3fce772855311f5b2b714971b | |
parent | f5ba0fbbe73e11418634bc95e1fc36d17edccf37 (diff) | |
download | ceph-3cdc61eca27d05de93b3693e618cb922294f76a4.tar.gz |
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 <sam.lang@inktank.com>
-rw-r--r-- | src/mds/Server.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 293640e4870..dc7ea23f763 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); } }; |