On Wed, 13 May 2015, Ilya Dryomov wrote:
> This reverts commit ba9d114ec5578e6e99a4dfa37ff8ae688040fd64.
>
> .. which introduced a regression that prevented all lingering requests
> requeued in kick_requests() from ever being sent to the OSDs, resulting
> in a lot of missed notifies. In retrospect it's pretty obvious that
> r_req_lru_item item in the case of lingering requests can be used not
> only for notarget, but also for unsent linkage due to how tightly
> actual map and enqueue operations are coupled in __map_request().
>
> The assertion that was being silenced is taken care of in the previous
> ("libceph: request a new osdmap if lingering request maps to no osd")
> commit: by always kicking homeless lingering requests we ensure that
> none of them ends up on the notarget list outside of the critical
> section guarded by request_mutex.
>
> Cc: [email protected] # 3.18+, needs 3d8c73c93605 "libceph: request a
> new osdmap if lingering request maps to no osd"
> Signed-off-by: Ilya Dryomov <[email protected]>
Reviewed-by: Sage Weil <[email protected]>
> ---
> net/ceph/osd_client.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
> index 31d4b1ebff01..c4ec9239249a 100644
> --- a/net/ceph/osd_client.c
> +++ b/net/ceph/osd_client.c
> @@ -1306,8 +1306,6 @@ static void __unregister_linger_request(struct
> ceph_osd_client *osdc,
> if (list_empty(&req->r_osd_item))
> req->r_osd = NULL;
> }
> -
> - list_del_init(&req->r_req_lru_item); /* can be on notarget */
> ceph_osdc_put_request(req);
> }
>
> --
> 1.9.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html