On Mon, May 21, 2018 at 11:29:21PM +0000, Bart Van Assche wrote: > Can you explain why the NVMe driver needs reference counting of requests but > no other block driver needs this? Additionally, why is it that for all block > drivers except NVMe the current block layer API is sufficient > (blk_get_request()/blk_execute_rq()/blk_mq_start_request()/ > blk_mq_complete_request()/blk_mq_end_request())? Hi Bart, I'm pretty sure NVMe isn't the only driver where a call to blk_mq_complete_request silently fails to transition the request to COMPLETE, forcing unnecessary error handling. This patch isn't so much about NVMe as it is about removing that silent exception from the block API. Thanks, Keith