[ 3.8.y.z extended stable ] Patch "libceph: unregister request in __map_request failed and nofail ==" has been added to staging queue

Kamal Mostafa kamal at canonical.com
Thu Sep 19 00:03:22 UTC 2013

This is a note to let you know that I have just added a patch titled

    libceph: unregister request in __map_request failed and nofail ==

to the linux-3.8.y-queue branch of the 3.8.y.z extended stable tree 
which can be found at:


This patch is scheduled to be released in version

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.8.y.z tree, see



>From e8c72f0a8626969980d7143738b417008638ffd1 Mon Sep 17 00:00:00 2001
From: majianpeng <majianpeng at gmail.com>
Date: Tue, 16 Jul 2013 15:45:48 +0800
Subject: libceph: unregister request in __map_request failed and nofail ==

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 at gmail.com>
Reviewed-by: Sage Weil <sage at inktank.com>
[ kamal: backport to 3.8 (context) ]
Signed-off-by: Kamal Mostafa <kamal at canonical.com>
 net/ceph/osd_client.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
index a5dfcb8..d62120b 100644
--- a/net/ceph/osd_client.c
+++ b/net/ceph/osd_client.c
@@ -1723,6 +1723,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;

More information about the kernel-team mailing list