libceph: fix linger request check in __unregister_request()
authorIlya Dryomov <ilya.dryomov@inktank.com>
Fri, 20 Jun 2014 14:29:20 +0000 (18:29 +0400)
committerIlya Dryomov <ilya.dryomov@inktank.com>
Tue, 8 Jul 2014 11:08:44 +0000 (15:08 +0400)
We should check if request is on the linger request list of any of the
OSDs, not whether request is registered or not.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
net/ceph/osd_client.c

index 943dba916ab14a1c821f97a211ad004b527a11e3..89d7d8861d80cd6e2596d6047b6f9a916f2711b8 100644 (file)
@@ -1221,7 +1221,7 @@ static void __unregister_request(struct ceph_osd_client *osdc,
 
                list_del_init(&req->r_osd_item);
                maybe_move_osd_to_lru(osdc, req->r_osd);
-               if (list_empty(&req->r_linger_item))
+               if (list_empty(&req->r_linger_osd_item))
                        req->r_osd = NULL;
        }