blk-mq: add helper to insert requests from irq context
authorChristoph Hellwig <hch@infradead.org>
Thu, 26 Jun 2014 04:46:04 +0000 (22:46 -0600)
committerJens Axboe <axboe@fb.com>
Mon, 30 Mar 2015 18:54:49 +0000 (12:54 -0600)
commit9c118cb019192a4fed8d9b258d8e95622746f4e1
tree06d85539444693fa3e7e7355a50fa517359462c7
parent5a345d88ca64cc0c8db39d3fe46363deb06354de
blk-mq: add helper to insert requests from irq context

Both the cache flush state machine and the SCSI midlayer want to submit
requests from irq context, and the current per-request requeue_work
unfortunately causes corruption due to sharing with the csd field for
flushes.  Replace them with a per-request_queue list of requests to
be requeued.

Based on an earlier test by Ming Lei.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reported-by: Ming Lei <tom.leiming@gmail.com>
Tested-by: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-flush.c
block/blk-mq.c
include/linux/blk-mq.h
include/linux/blkdev.h