diff options
author | Sage Weil <sage@newdream.net> | 2011-05-12 18:48:16 -0400 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2011-05-19 14:25:05 -0400 |
commit | 9d6fcb081a4770c3772c51c59c7251c22716d7bb (patch) | |
tree | 8827d90aff9d7f463cb429aff1ecd22dde6a77a6 | |
parent | 6b4a3b517a767c483d16a200730b2967e0e23b83 (diff) |
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>
-rw-r--r-- | fs/ceph/addr.c | 3 | ||||
-rw-r--r-- | net/ceph/osd_client.c | 8 |
2 files changed, 9 insertions, 2 deletions
diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 54967268a340..33da49dc3cc6 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c | |||
@@ -848,7 +848,8 @@ get_more_pages: | |||
848 | op->payload_len = cpu_to_le32(len); | 848 | op->payload_len = cpu_to_le32(len); |
849 | req->r_request->hdr.data_len = cpu_to_le32(len); | 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 | req = NULL; | 853 | req = NULL; |
853 | 854 | ||
854 | /* continue? */ | 855 | /* continue? */ |
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c index 9adbb01d23ad..caa092eb0009 100644 --- a/net/ceph/osd_client.c +++ b/net/ceph/osd_client.c | |||
@@ -1677,8 +1677,14 @@ int ceph_osdc_start_request(struct ceph_osd_client *osdc, | |||
1677 | */ | 1677 | */ |
1678 | if (req->r_sent == 0) { | 1678 | if (req->r_sent == 0) { |
1679 | rc = __map_request(osdc, req); | 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 | goto out_unlock; | 1686 | goto out_unlock; |
1687 | } | ||
1682 | if (req->r_osd == NULL) { | 1688 | if (req->r_osd == NULL) { |
1683 | dout("send_request %p no up osds in pg\n", req); | 1689 | dout("send_request %p no up osds in pg\n", req); |
1684 | ceph_monc_request_next_osdmap(&osdc->client->monc); | 1690 | ceph_monc_request_next_osdmap(&osdc->client->monc); |