Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9d6fcb08 authored by Sage Weil's avatar Sage Weil
Browse files

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: default avatarSage Weil <sage@newdream.net>
parent 6b4a3b51
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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? */
+7 −1
Original line number Diff line number Diff line
@@ -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);