diff options
author | majianpeng <majianpeng@gmail.com> | 2013-07-16 15:45:48 +0800 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2013-10-26 21:05:58 +0100 |
commit | be47dfad8e39e8b849fd0487292b3998284ddbc2 (patch) | |
tree | aa83882e5aa95515a542e89d007c9f61181717eb /net/ceph | |
parent | bd1d8b9014eae19a1f87197984f051760236a2bc (diff) | |
download | kernel_samsung_smdk4412-be47dfad8e39e8b849fd0487292b3998284ddbc2.zip kernel_samsung_smdk4412-be47dfad8e39e8b849fd0487292b3998284ddbc2.tar.gz kernel_samsung_smdk4412-be47dfad8e39e8b849fd0487292b3998284ddbc2.tar.bz2 |
libceph: unregister request in __map_request failed and nofail == false
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>
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 f4f3f58..a70f426 100644 --- a/net/ceph/osd_client.c +++ b/net/ceph/osd_client.c @@ -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; } |