]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: fix crash when killing busy session
authorYan, Zheng <zyan@redhat.com>
Tue, 24 Mar 2015 07:01:49 +0000 (15:01 +0800)
committerYan, Zheng <zyan@redhat.com>
Wed, 25 Mar 2015 02:38:28 +0000 (10:38 +0800)
journal_close_session() has already freed pending_prealloc_inos

Signed-off-by: Yan, Zheng <zyan@redhat.com>
src/mds/Server.cc

index c279400d5c4cec1071292ccb71b668ae6362a697..e387e0fd7f92f22d9e2e1679c8e3db0ea77482f0 100644 (file)
@@ -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);
   }