Commit 9d6fcb081a4770c3772c51c59c7251c22716d7bb

Authored by Sage Weil
1 parent 6b4a3b517a

ceph: check return value for start_request in writepages

Since we pass the nofail arg, we should never get an error; BUG if we do.
(And fix the function to not return an error if __map_request fails.)

Signed-off-by: Sage Weil <sage@newdream.net>

Showing 2 changed files with 9 additions and 2 deletions Side-by-side Diff

... ... @@ -848,7 +848,8 @@
848 848 op->payload_len = cpu_to_le32(len);
849 849 req->r_request->hdr.data_len = cpu_to_le32(len);
850 850  
851   - ceph_osdc_start_request(&fsc->client->osdc, req, true);
  851 + rc = ceph_osdc_start_request(&fsc->client->osdc, req, true);
  852 + BUG_ON(rc);
852 853 req = NULL;
853 854  
854 855 /* continue? */
net/ceph/osd_client.c
... ... @@ -1677,8 +1677,14 @@
1677 1677 */
1678 1678 if (req->r_sent == 0) {
1679 1679 rc = __map_request(osdc, req);
1680   - if (rc < 0)
  1680 + if (rc < 0) {
  1681 + if (nofail) {
  1682 + dout("osdc_start_request failed map, "
  1683 + " will retry %lld\n", req->r_tid);
  1684 + rc = 0;
  1685 + }
1681 1686 goto out_unlock;
  1687 + }
1682 1688 if (req->r_osd == NULL) {
1683 1689 dout("send_request %p no up osds in pg\n", req);
1684 1690 ceph_monc_request_next_osdmap(&osdc->client->monc);