From 8f91547654a84dc34bf6dd4d01f28010d60ef40b Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Tue, 24 Mar 2015 15:01:49 +0800 Subject: [PATCH] mds: fix crash when killing busy session journal_close_session() has already freed pending_prealloc_inos Signed-off-by: Yan, Zheng --- src/mds/Server.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mds/Server.cc b/src/mds/Server.cc index c279400d5c4ce..e387e0fd7f92f 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); } -- 2.39.5