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: stable@xxxxxxxxxxxxxxx # 3.18+, needs 3d8c73c93605 "libceph: request a new osdmap if lingering request maps to no osd" > Signed-off-by: Ilya Dryomov <idryomov@xxxxxxxxx> Reviewed-by: Sage Weil <sage@xxxxxxxxxx> > --- > 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 majordomo@xxxxxxxxxxxxxxx > 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html