diff options
author | majianpeng <majianpeng@gmail.com> | 2013-07-16 15:45:48 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-09-26 17:18:29 -0700 |
commit | 2ab0ad6af3a87818ea3525914be6779fca833801 (patch) | |
tree | 40c56e1ee437dce343e2bd6cd4046c8ccda322b9 | |
parent | 4fdaa3d47985338f80d7262de700533a9e630d29 (diff) | |
download | linux-stable-2ab0ad6af3a87818ea3525914be6779fca833801.tar.gz linux-stable-2ab0ad6af3a87818ea3525914be6779fca833801.tar.bz2 linux-stable-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>
-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 3a246a6cab47..46ec7672cccc 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; } |