diff options
author | Keith Busch <keith.busch@intel.com> | 2015-01-07 20:55:46 -0500 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2015-01-08 10:59:01 -0500 |
commit | 5b3f25fc343690cafd3e27431a69a7bdaf9df001 (patch) | |
tree | 8892062d8290c520faf5daf355bcc303501919d5 /block/blk-mq.c | |
parent | 1885b24d23716e09b9c952822b05fd7f68099cdb (diff) |
blk-mq: Allow requests to never expire
Some types of requests may be started that are not gauranteed to ever
complete. This adds a request flag that a driver can use so mark the
request as such.
Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block/blk-mq.c')
-rw-r--r-- | block/blk-mq.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/block/blk-mq.c b/block/blk-mq.c index 261ccd89e15d..78324a2f0e10 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c | |||
@@ -619,7 +619,7 @@ void blk_mq_rq_timed_out(struct request *req, bool reserved) | |||
619 | break; | 619 | break; |
620 | } | 620 | } |
621 | } | 621 | } |
622 | 622 | ||
623 | static void blk_mq_check_expired(struct blk_mq_hw_ctx *hctx, | 623 | static void blk_mq_check_expired(struct blk_mq_hw_ctx *hctx, |
624 | struct request *rq, void *priv, bool reserved) | 624 | struct request *rq, void *priv, bool reserved) |
625 | { | 625 | { |
@@ -627,6 +627,8 @@ static void blk_mq_check_expired(struct blk_mq_hw_ctx *hctx, | |||
627 | 627 | ||
628 | if (!test_bit(REQ_ATOM_STARTED, &rq->atomic_flags)) | 628 | if (!test_bit(REQ_ATOM_STARTED, &rq->atomic_flags)) |
629 | return; | 629 | return; |
630 | if (rq->cmd_flags & REQ_NO_TIMEOUT) | ||
631 | return; | ||
630 | 632 | ||
631 | if (time_after_eq(jiffies, rq->deadline)) { | 633 | if (time_after_eq(jiffies, rq->deadline)) { |
632 | if (!blk_mark_rq_complete(rq)) | 634 | if (!blk_mark_rq_complete(rq)) |