]> git.ipfire.org Git - people/ms/linux.git/commitdiff
libceph: unregister request in __map_request failed and nofail == false
authormajianpeng <majianpeng@gmail.com>
Tue, 16 Jul 2013 07:45:48 +0000 (15:45 +0800)
committerBen Hutchings <ben@decadent.org.uk>
Sat, 26 Oct 2013 20:05:58 +0000 (21:05 +0100)
commit 73d9f7eef3d98c3920e144797cc1894c6b005a1e upstream.

For nofail == false request, if __map_request failed, the caller does
cleanup work, like releasing the relative pages.  It doesn't make any sense
to retry this request.

Signed-off-by: Jianpeng Ma <majianpeng@gmail.com>
Reviewed-by: Sage Weil <sage@inktank.com>
[bwh: Backported to 3.2: adjust indentation]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
net/ceph/osd_client.c

index f4f3f58f5234c1a5ce5eb4b54638c730f571ffb9..a70f426c6d6fdcc92f1022db289c1504f91192d8 100644 (file)
@@ -1719,6 +1719,8 @@ int ceph_osdc_start_request(struct ceph_osd_client *osdc,
                                dout("osdc_start_request failed map, "
                                     " will retry %lld\n", req->r_tid);
                                rc = 0;
+                       } else {
+                               __unregister_request(osdc, req);
                        }
                        goto out_unlock;
                }