summaryrefslogtreecommitdiff
path: root/net/ceph
diff options
context:
space:
mode:
authormajianpeng <majianpeng@gmail.com>2013-07-16 15:45:48 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-09-26 17:18:29 -0700
commit2ab0ad6af3a87818ea3525914be6779fca833801 (patch)
tree40c56e1ee437dce343e2bd6cd4046c8ccda322b9 /net/ceph
parent4fdaa3d47985338f80d7262de700533a9e630d29 (diff)
downloadlinux-3.10-2ab0ad6af3a87818ea3525914be6779fca833801.tar.gz
linux-3.10-2ab0ad6af3a87818ea3525914be6779fca833801.tar.bz2
linux-3.10-2ab0ad6af3a87818ea3525914be6779fca833801.zip
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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/ceph')
-rw-r--r--net/ceph/osd_client.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
index 3a246a6cab4..46ec7672ccc 100644
--- a/net/ceph/osd_client.c
+++ b/net/ceph/osd_client.c
@@ -2130,6 +2130,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;
}