]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: remove Capability from session list before deleting
authorSage Weil <sage@newdream.net>
Thu, 20 Nov 2008 16:09:27 +0000 (08:09 -0800)
committerSage Weil <sage@newdream.net>
Thu, 20 Nov 2008 16:16:53 +0000 (08:16 -0800)
src/mds/CInode.h

index 1881099dd3bdd1114ec181e0c05c127b8a229b45..dd5634538ceacf3f24f832527ae939228ba2fa55 100644 (file)
@@ -552,10 +552,12 @@ public:
   }
   void remove_client_cap(int client) {
     assert(client_caps.count(client) == 1);
+    Capability *cap = client_caps[client];
 
-    containing_realm->remove_cap(client, client_caps[client]);
+    cap->session_caps_item.remove_myself();
+    containing_realm->remove_cap(client, cap);
 
-    delete client_caps[client];
+    delete cap;
     client_caps.erase(client);
     if (client_caps.empty()) {
       put(PIN_CAPS);