Hi, This patchset introduces blk_mq_complete_request_sync() for canceling request synchronously in error handler context, then one race between completing request remotely and destroying contoller/queues can be fixed. V4: - drop return value - don't handle fake timeout V3: - avoid extra cost to blk_mq_complete_request V2: - export via EXPORT_SYMBOL_GPL - minor commit log change Ming Lei (2): blk-mq: introduce blk_mq_complete_request_sync() nvme: cancel request synchronously block/blk-mq.c | 7 +++++++ drivers/nvme/host/core.c | 2 +- include/linux/blk-mq.h | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) Cc: Keith Busch <kbusch@xxxxxxxxxx> Cc: Sagi Grimberg <sagi@xxxxxxxxxxx> Cc: Bart Van Assche <bvanassche@xxxxxxx> Cc: James Smart <james.smart@xxxxxxxxxxxx> Cc: Christoph Hellwig <hch@xxxxxx> Cc: linux-nvme@xxxxxxxxxxxxxxxxxxx -- 2.9.5