summaryrefslogtreecommitdiffstats
path: root/net/ceph
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2011-05-12 15:48:16 -0700
committerSage Weil <sage@newdream.net>2011-05-19 11:25:05 -0700
commit9d6fcb081a4770c3772c51c59c7251c22716d7bb (patch)
tree8827d90aff9d7f463cb429aff1ecd22dde6a77a6 /net/ceph
parent6b4a3b517a767c483d16a200730b2967e0e23b83 (diff)
downloadlinux-9d6fcb081a4770c3772c51c59c7251c22716d7bb.tar.gz
linux-9d6fcb081a4770c3772c51c59c7251c22716d7bb.tar.bz2
linux-9d6fcb081a4770c3772c51c59c7251c22716d7bb.zip
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>
Diffstat (limited to 'net/ceph')
-rw-r--r--net/ceph/osd_client.c8
1 files changed, 7 insertions, 1 deletions
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,
*/
if (req->r_sent == 0) {
rc = __map_request(osdc, req);
- if (rc < 0)
+ if (rc < 0) {
+ if (nofail) {
+ dout("osdc_start_request failed map, "
+ " will retry %lld\n", req->r_tid);
+ rc = 0;
+ }
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);