From: Alex Elder Date: Thu, 6 Dec 2012 15:37:23 +0000 (-0600) Subject: rbd: remove linger unconditionally X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=61c74035626beb25a39b0273ccf7d75510bc36a1;p=linux-beck.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 --- diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c index 60c74c1f1ea9..32bd696b39a8 100644 --- a/net/ceph/osd_client.c +++ b/net/ceph/osd_client.c @@ -906,8 +906,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) &&