>From a quick look the code seems reasonably sensible here, but any chance we could have this in common code? > +static bool nvme_fail_queue_request(struct request *req, void *data, bool reserved) > +{ > + struct nvme_iod *iod = blk_mq_rq_to_pdu(req); > + struct nvme_queue *nvmeq = iod->nvmeq; > + > + if (!test_bit(NVMEQ_ENABLED, &nvmeq->flags)) > + blk_mq_end_request(req, BLK_STS_IOERR); > + return true; > +} The only thing not purely block layer here is the enabled flag. So if we had a per-hctx enabled flag we could lift this out of nvme, and hopefully start reusing it in other drivers.