From: Yan, Zheng Date: Tue, 24 Mar 2015 07:01:49 +0000 (+0800) Subject: mds: fix crash when killing busy session X-Git-Tag: v9.0.0~73^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8f91547654a84dc34bf6dd4d01f28010d60ef40b;p=ceph.git mds: fix crash when killing busy session journal_close_session() has already freed pending_prealloc_inos Signed-off-by: Yan, Zheng --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index c279400d5c4c..e387e0fd7f92 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -2272,8 +2272,10 @@ void Server::apply_allocated_inos(MDRequestRef& mdr) } if (mdr->prealloc_inos.size()) { assert(session); - session->pending_prealloc_inos.subtract(mdr->prealloc_inos); - session->info.prealloc_inos.insert(mdr->prealloc_inos); + if (!mdr->killed) { + session->pending_prealloc_inos.subtract(mdr->prealloc_inos); + session->info.prealloc_inos.insert(mdr->prealloc_inos); + } mds->sessionmap.mark_dirty(session); mds->inotable->apply_alloc_ids(mdr->prealloc_inos); }