ceph: unlock on error in ceph_osdc_start_request()
Subsystems (2)
PATCH 2/2 ceph: unlock on error in ceph_osdc_start_request()
There was a missing unlock on the error path if __map_request() failed.
Signed-off-by Dan Carpenter <[email protected]>
net/ceph/osd_client.c +3 -1
@@ -1672,7 +1672,7 @@ int ceph_osdc_start_request(struct ceph_osd_client *osdc,if (req->r_sent =0 ) { rc =__map_request (osdc, req);if (rc <0 ) -return rc; + goto out_unlock;if (req->r_osd =NULL ) {dout ("send_request %p no up osds in pg\n" , req);ceph_monc_request_next_osdmap (&osdc->client->monc);
@@ -1689,6 +1689,8 @@ int ceph_osdc_start_request(struct ceph_osd_client *osdc, } } } + +out_unlock:mutex_unlock (&osdc->request_mutex);up_read (&osdc->map_sem);return rc;
Sage Weil
AppliedThanks, applied this one!
sage
Quoted 32 lines · Dan Carpenter
There was a missing unlock on the error path if
__map_request()failed.Signed-off-by Dan Carpenter <[email protected]>net/ceph/osd_client.c +3
-2@@ -1672,7 +1672,7 @@ int ceph_osdc_start_request(struct ceph_osd_client *osdc,if (req->r_sent ==0 ) { rc =__map_request (osdc, req);if (rc <0 ) -return rc; + goto out_unlock;if (req->r_osd ==NULL ) {dout ("send_request %p no up osds in pg\n" , req);ceph_monc_request_next_osdmap (&osdc->client->monc);@@ -1689,6 +1689,8 @@ int ceph_osdc_start_request(struct ceph_osd_client *osdc, } } } + +out_unlock:mutex_unlock (&osdc->request_mutex);up_read (&osdc->map_sem);return rc; --To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html