]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
client: only signal session waiters on open and close
authorSage Weil <sage@inktank.com>
Wed, 13 Mar 2013 20:21:34 +0000 (13:21 -0700)
committerSage Weil <sage@inktank.com>
Wed, 13 Mar 2013 23:36:57 +0000 (16:36 -0700)
Signed-off-by: Sage Weil <sage@inktank.com>
src/client/Client.cc

index ce899400b9b8b4e1975bd62a0f7aecb0248030bb..5b1f95f047cb48cbc051d9c796aa16b470165623 100644 (file)
@@ -1524,10 +1524,12 @@ void Client::handle_client_session(MClientSession *m)
     } else {
       connect_mds_targets(from);
     }
+    signal_cond_list(session->waiting_for_open);
     break;
 
   case CEPH_SESSION_CLOSE:
     _closed_mds_session(session);
+    signal_cond_list(session->waiting_for_open);
     break;
 
   case CEPH_SESSION_RENEWCAPS:
@@ -1550,9 +1552,6 @@ void Client::handle_client_session(MClientSession *m)
     assert(0);
   }
 
-  // kick waiting threads
-  signal_cond_list(session->waiting_for_open);
-
   m->put();
 }