diff options
| -rw-r--r-- | net/ceph/osd_client.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c index b6776cb627cc..03740e8fc9d1 100644 --- a/net/ceph/osd_client.c +++ b/net/ceph/osd_client.c | |||
| @@ -1672,7 +1672,7 @@ int ceph_osdc_start_request(struct ceph_osd_client *osdc, | |||
| 1672 | if (req->r_sent == 0) { | 1672 | if (req->r_sent == 0) { |
| 1673 | rc = __map_request(osdc, req); | 1673 | rc = __map_request(osdc, req); |
| 1674 | if (rc < 0) | 1674 | if (rc < 0) |
| 1675 | return rc; | 1675 | goto out_unlock; |
| 1676 | if (req->r_osd == NULL) { | 1676 | if (req->r_osd == NULL) { |
| 1677 | dout("send_request %p no up osds in pg\n", req); | 1677 | dout("send_request %p no up osds in pg\n", req); |
| 1678 | ceph_monc_request_next_osdmap(&osdc->client->monc); | 1678 | ceph_monc_request_next_osdmap(&osdc->client->monc); |
| @@ -1689,6 +1689,8 @@ int ceph_osdc_start_request(struct ceph_osd_client *osdc, | |||
| 1689 | } | 1689 | } |
| 1690 | } | 1690 | } |
| 1691 | } | 1691 | } |
| 1692 | |||
| 1693 | out_unlock: | ||
| 1692 | mutex_unlock(&osdc->request_mutex); | 1694 | mutex_unlock(&osdc->request_mutex); |
| 1693 | up_read(&osdc->map_sem); | 1695 | up_read(&osdc->map_sem); |
| 1694 | return rc; | 1696 | return rc; |
