case CEPH_SESSION_CLOSE:
mds_sessions.erase(from);
+ mount_cond.Signal();
// FIXME: kick requests (hard) so that they are redirected. or fail.
break;
mdsmap->get_inst(p->first));
}
+ // wait for sessions to close
+ while (mds_sessions.size()) {
+ dout(2) << "waiting for " << mds_sessions.size() << " mds sessions to close" << dendl;
+ mount_cond.Wait(client_lock);
+ }
+
// leave cluster
client_lock.Unlock();
monclient->unmount();