return msg;
}
-/*
- * Register request with mon_client for a new mds map.
- *
- * called under mdsc->mutex.
- */
-static void request_new_map(struct ceph_mds_client *mdsc)
-{
- dout(30, "request_new_map enter\n");
- mutex_unlock(&mdsc->mutex);
- ceph_monc_request_mdsmap(&mdsc->client->monc, mdsc->mdsmap->m_epoch+1);
- mutex_lock(&mdsc->mutex);
-}
-
/*
* send session open request.
*
dout(10, "open_session to mds%d, state %d\n", mds, mstate);
session->s_state = CEPH_MDS_SESSION_OPENING;
session->s_renew_requested = jiffies;
- mutex_unlock(&mdsc->mutex);
/* send connect message */
msg = create_session_msg(CEPH_SESSION_REQUEST_OPEN, session->s_seq);
ceph_send_msg_mds(mdsc, msg, mds);
out:
- mutex_lock(&mdsc->mutex);
return 0;
}
ceph_mdsmap_get_state(mdsc->mdsmap, mds) < CEPH_MDS_STATE_ACTIVE) {
dout(30, "do_request no mds or not active, waiting for map\n");
list_add(&req->r_wait, &mdsc->waiting_for_map);
- request_new_map(mdsc);
+ ceph_monc_request_mdsmap(&mdsc->client->monc,
+ mdsc->mdsmap->m_epoch+1);
goto out;
}
session->s_state == CEPH_MDS_SESSION_CLOSING)
__open_session(mdsc, session);
list_add(&req->r_wait, &session->s_waiting);
- request_new_map(mdsc);
+ ceph_monc_request_mdsmap(&mdsc->client->monc,
+ mdsc->mdsmap->m_epoch+1);
goto out_session;
}
err = __prepare_send_request(mdsc, req, mds);
if (!err) {
- mutex_unlock(&mdsc->mutex);
ceph_msg_get(req->r_request);
ceph_send_msg_mds(mdsc, req->r_request, mds);
- mutex_lock(&mdsc->mutex);
}
out_session: