From: Alex Elder Date: Thu, 6 Dec 2012 15:37:23 +0000 (-0600) Subject: rbd: remove linger unconditionally X-Git-Tag: v3.4.26~13 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=50cda8f4439d715e080ced70d1e6d9ec07f95e6c;p=platform%2Fkernel%2Flinux-stable.git rbd: remove linger unconditionally In __unregister_linger_request(), the request is being removed from the osd client's req_linger list only when the request has a non-null osd pointer. It should be done whether or not the request currently has an osd. This is most likely a non-issue because I believe the request will always have an osd when this function is called. Signed-off-by: Alex Elder Reviewed-by: Sage Weil (cherry picked from commit 61c74035626beb25a39b0273ccf7d75510bc36a1) Signed-off-by: Greg Kroah-Hartman --- diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c index 925649c..b16dfa2 100644 --- a/net/ceph/osd_client.c +++ b/net/ceph/osd_client.c @@ -905,8 +905,8 @@ static void __unregister_linger_request(struct ceph_osd_client *osdc, struct ceph_osd_request *req) { dout("__unregister_linger_request %p\n", req); + list_del_init(&req->r_linger_item); if (req->r_osd) { - list_del_init(&req->r_linger_item); list_del_init(&req->r_linger_osd); if (list_empty(&req->r_osd->o_requests) &&