if (session->s_state == CEPH_MDS_SESSION_RECONNECTING)
                        pr_info("mds%d reconnect denied\n", session->s_mds);
                remove_session_caps(session);
-               wake = 1; /* for good measure */
+               wake = 2; /* for good measure */
                wake_up_all(&mdsc->session_close_wq);
-               kick_requests(mdsc, mds);
                break;
 
        case CEPH_SESSION_STALE:
        if (wake) {
                mutex_lock(&mdsc->mutex);
                __wake_requests(mdsc, &session->s_waiting);
+               if (wake == 2)
+                       kick_requests(mdsc, mds);
                mutex_unlock(&mdsc->mutex);
        }
        return;