diff options
author | majianpeng <majianpeng@gmail.com> | 2013-07-16 07:45:48 (GMT) |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-08-10 00:52:06 (GMT) |
commit | 73d9f7eef3d98c3920e144797cc1894c6b005a1e (patch) | |
tree | b8c05e119c7047d32b2875fa21f6074f7bba283b /net/ceph | |
parent | 494ddd11be3e2621096bb425eed2886f8e8446d4 (diff) | |
download | linux-73d9f7eef3d98c3920e144797cc1894c6b005a1e.tar.xz |
libceph: unregister request in __map_request failed and nofail == false
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.
CC: stable@vger.kernel.org
Signed-off-by: Jianpeng Ma <majianpeng@gmail.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Diffstat (limited to 'net/ceph')
-rw-r--r-- | net/ceph/osd_client.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c index dd47889..dbc0a73 100644 --- a/net/ceph/osd_client.c +++ b/net/ceph/osd_client.c @@ -2129,6 +2129,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; } |