On 9/11/20 4:41 AM, Ming Lei wrote: > NVMe shares tagset between fabric queue and admin queue or between > connect_q and NS queue, so hctx_may_queue() can be called to allocate > request for these queues. > > Tags can be reserved in these tagset. Before error recovery, there is > often lots of in-flight requests which can't be completed, and new > reserved request may be needed in error recovery path. However, > hctx_may_queue() can always return false because there is too many > in-flight requests which can't be completed during error handling. > Finally, everything can't move on. > > Fix this issue by always allowing reserved tag allocation in > hctx_may_queue(). This ways is reasonable because reserved tag > suppose to be ready any time. Applied, thanks. -- Jens Axboe