Re: [PATCH 2/2] nbd: don't start req until after the dead connection logic

2018-05-17 Thread Bart Van Assche
On Thu, 2018-05-17 at 14:41 -0400, Josef Bacik wrote: > Yup I can tell you why, on 4.11 where I originally did this work > __blk_mq_requeue_request() did this > > static void __blk_mq_requeue_request(struct request *rq) > { > struct request_queue *q = rq->q; > >

Re: [PATCH 2/2] nbd: don't start req until after the dead connection logic

2018-05-17 Thread Josef Bacik
On Thu, May 17, 2018 at 06:21:40PM +, Bart Van Assche wrote: > On Thu, 2017-10-19 at 16:21 -0400, Josef Bacik wrote: > > + blk_mq_start_request(req); > > if (unlikely(nsock->pending && nsock->pending != req)) { > > blk_mq_requeue_request(req, true); > > ret = 0; >

Re: [PATCH 2/2] nbd: don't start req until after the dead connection logic

2018-05-17 Thread Bart Van Assche
On Thu, 2017-10-19 at 16:21 -0400, Josef Bacik wrote: > + blk_mq_start_request(req); > if (unlikely(nsock->pending && nsock->pending != req)) { > blk_mq_requeue_request(req, true); > ret = 0; (replying to an e-mail from seven months ago) Hello Josef, Are

[PATCH 2/2] nbd: don't start req until after the dead connection logic

2017-10-19 Thread Josef Bacik
From: Josef Bacik We can end up sleeping for a while waiting for the dead timeout, which means we could get the per request timer to fire. We did handle this case, but if the dead timeout happened right after we submitted we'd either tear down the connection or possibly requeue