Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

block: remove REQ_NO_TIMEOUT flag

This was added for the 'magic' AEN requests in the NVMe driver that never
return. We now handle them purely inside the driver and don't need this
core hack any more.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>

authored by

Christoph Hellwig and committed by
Jens Axboe
bbc758ec f4800d6d

-7
-2
block/blk-mq.c
··· 603 603 blk_mq_complete_request(rq, -EIO); 604 604 return; 605 605 } 606 - if (rq->cmd_flags & REQ_NO_TIMEOUT) 607 - return; 608 606 609 607 if (time_after_eq(jiffies, rq->deadline)) { 610 608 if (!blk_mark_rq_complete(rq))
-3
block/blk-timeout.c
··· 197 197 struct request_queue *q = req->q; 198 198 unsigned long expiry; 199 199 200 - if (req->cmd_flags & REQ_NO_TIMEOUT) 201 - return; 202 - 203 200 /* blk-mq has its own handler, so we don't need ->rq_timed_out_fn */ 204 201 if (!q->mq_ops && !q->rq_timed_out_fn) 205 202 return;
-2
include/linux/blk_types.h
··· 188 188 __REQ_PM, /* runtime pm request */ 189 189 __REQ_HASHED, /* on IO scheduler merge hash */ 190 190 __REQ_MQ_INFLIGHT, /* track inflight for MQ */ 191 - __REQ_NO_TIMEOUT, /* requests may never expire */ 192 191 __REQ_NR_BITS, /* stops here */ 193 192 }; 194 193 ··· 241 242 #define REQ_PM (1ULL << __REQ_PM) 242 243 #define REQ_HASHED (1ULL << __REQ_HASHED) 243 244 #define REQ_MQ_INFLIGHT (1ULL << __REQ_MQ_INFLIGHT) 244 - #define REQ_NO_TIMEOUT (1ULL << __REQ_NO_TIMEOUT) 245 245 246 246 typedef unsigned int blk_qc_t; 247 247 #define BLK_QC_T_NONE -1U