diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c index 7041906a55a6..f9276cb26aa2 100644 --- a/net/ceph/osd_client.c +++ b/net/ceph/osd_client.c @@ -831,14 +831,6 @@ static void __register_request(struct ceph_osd_client *osdc, } } -static void register_request(struct ceph_osd_client *osdc, - struct ceph_osd_request *req) -{ - mutex_lock(&osdc->request_mutex); - __register_request(osdc, req); - mutex_unlock(&osdc->request_mutex); -} - /* * called under osdc->request_mutex */ @@ -1785,8 +1777,6 @@ int ceph_osdc_start_request(struct ceph_osd_client *osdc, ceph_osdc_msg_data_set(req->r_reply, &req->r_data_in); ceph_osdc_msg_data_set(req->r_request, &req->r_data_out); - register_request(osdc, req); - down_read(&osdc->map_sem); mutex_lock(&osdc->request_mutex); /* @@ -1794,6 +1784,7 @@ int ceph_osdc_start_request(struct ceph_osd_client *osdc, * while we dropped request_mutex above, so only send now if * the request still han't been touched yet. */ + __register_request(osdc, req); if (req->r_sent == 0) { rc = __map_request(osdc, req, 0); if (rc < 0) {