Commit 234af26ff123dfb2aa48772124721b1354c8e0a5

Authored by Dan Carpenter
Committed by Sage Weil
1 parent 6b0ae4097c

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 <error27@gmail.com>
Signed-off-by: Sage Weil <sage@newdream.net>

Showing 1 changed file with 3 additions and 1 deletions Side-by-side Diff

net/ceph/osd_client.c
... ... @@ -1672,7 +1672,7 @@
1672 1672 if (req->r_sent == 0) {
1673 1673 rc = __map_request(osdc, req);
1674 1674 if (rc < 0)
1675   - return rc;
  1675 + goto out_unlock;
1676 1676 if (req->r_osd == NULL) {
1677 1677 dout("send_request %p no up osds in pg\n", req);
1678 1678 ceph_monc_request_next_osdmap(&osdc->client->monc);
... ... @@ -1689,6 +1689,8 @@
1689 1689 }
1690 1690 }
1691 1691 }
  1692 +
  1693 +out_unlock:
1692 1694 mutex_unlock(&osdc->request_mutex);
1693 1695 up_read(&osdc->map_sem);
1694 1696 return rc;