OSDN Git Service

dm: requeue from blk-mq dm_mq_queue_rq() using BLK_MQ_RQ_QUEUE_BUSY
authorMike Snitzer <snitzer@redhat.com>
Wed, 27 May 2015 19:25:27 +0000 (15:25 -0400)
committerMike Snitzer <snitzer@redhat.com>
Wed, 27 May 2015 21:37:23 +0000 (17:37 -0400)
commit45714fbed4556149d7f1730f5bae74f81d5e2cd5
tree7bebdecc13511fc03de8b4d08e98d967c45d5d3b
parent4c6dd53dd3674c310d7379c6b3273daa9fd95c79
dm: requeue from blk-mq dm_mq_queue_rq() using BLK_MQ_RQ_QUEUE_BUSY

Use BLK_MQ_RQ_QUEUE_BUSY to requeue a blk-mq request directly from the
DM blk-mq device's .queue_rq.  This cleans up the previous convoluted
handling of request requeueing that would return BLK_MQ_RQ_QUEUE_OK
(even though it wasn't) and then run blk_mq_requeue_request() followed
by blk_mq_kick_requeue_list().

Also, document that DM blk-mq ontop of old request_fn devices cannot
fail in clone_rq() since the clone request is preallocated as part of
the pdu.

Reported-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm.c