summaryrefslogtreecommitdiffstats
path: root/block/blk-timeout.c
diff options
context:
space:
mode:
authorKeith Busch <keith.busch@intel.com>2015-01-07 18:55:46 -0700
committerJens Axboe <axboe@fb.com>2015-01-08 08:59:01 -0700
commit5b3f25fc343690cafd3e27431a69a7bdaf9df001 (patch)
tree8892062d8290c520faf5daf355bcc303501919d5 /block/blk-timeout.c
parent1885b24d23716e09b9c952822b05fd7f68099cdb (diff)
downloadlinux-5b3f25fc343690cafd3e27431a69a7bdaf9df001.tar.gz
linux-5b3f25fc343690cafd3e27431a69a7bdaf9df001.tar.bz2
linux-5b3f25fc343690cafd3e27431a69a7bdaf9df001.zip
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-timeout.c')
-rw-r--r--block/blk-timeout.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/block/blk-timeout.c b/block/blk-timeout.c
index 56c025894cdf..246dfb16c3d9 100644
--- a/block/blk-timeout.c
+++ b/block/blk-timeout.c
@@ -190,6 +190,9 @@ void blk_add_timer(struct request *req)
struct request_queue *q = req->q;
unsigned long expiry;
+ if (req->cmd_flags & REQ_NO_TIMEOUT)
+ return;
+
/* blk-mq has its own handler, so we don't need ->rq_timed_out_fn */
if (!q->mq_ops && !q->rq_timed_out_fn)
return;