diff --git a/[refs] b/[refs] index c89770b555f2..af558257435e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6b4a3b517a767c483d16a200730b2967e0e23b83 +refs/heads/master: 9d6fcb081a4770c3772c51c59c7251c22716d7bb diff --git a/trunk/fs/ceph/addr.c b/trunk/fs/ceph/addr.c index 54967268a340..33da49dc3cc6 100644 --- a/trunk/fs/ceph/addr.c +++ b/trunk/fs/ceph/addr.c @@ -848,7 +848,8 @@ static int ceph_writepages_start(struct address_space *mapping, op->payload_len = cpu_to_le32(len); req->r_request->hdr.data_len = cpu_to_le32(len); - ceph_osdc_start_request(&fsc->client->osdc, req, true); + rc = ceph_osdc_start_request(&fsc->client->osdc, req, true); + BUG_ON(rc); req = NULL; /* continue? */ diff --git a/trunk/net/ceph/osd_client.c b/trunk/net/ceph/osd_client.c index 9adbb01d23ad..caa092eb0009 100644 --- a/trunk/net/ceph/osd_client.c +++ b/trunk/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);