On Fri, 2019-03-08 at 10:40 -0700, Keith Busch wrote: +AD4 +-static bool nvme+AF8-fail+AF8-queue+AF8-request(struct request +ACo-req, void +ACo-data, bool reserved) +AD4 +-+AHs +AD4 +- struct nvme+AF8-iod +ACo-iod +AD0 blk+AF8-mq+AF8-rq+AF8-to+AF8-pdu(req)+ADs +AD4 +- struct nvme+AF8-queue +ACo-nvmeq +AD0 iod-+AD4-nvmeq+ADs +AD4 +- +AD4 +- if (+ACE-test+AF8-bit(NVMEQ+AF8-ENABLED, +ACY-nvmeq-+AD4-flags)) +AD4 +- blk+AF8-mq+AF8-end+AF8-request(req, BLK+AF8-STS+AF8-IOERR)+ADs +AD4 +- return true+ADs +AD4 +-+AH0 Same question here as for patch 4/5: what prevents concurrent calls of blk+AF8-mq+AF8-complete+AF8-request() with the blk+AF8-mq+AF8-end+AF8-request() call in the above function? Thanks, Bart.