diff options
author | Jens Axboe <axboe@kernel.dk> | 2018-01-09 14:23:42 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2018-01-10 11:47:47 -0700 |
commit | 0a72e7f44964b9ada3e5c15820372e9cb119bf80 (patch) | |
tree | 08885e630c816c2d22951f29e1783c685400fcb1 /block/blk.h | |
parent | 76a86f9d027b342b8759a4b2f9f7fe046e284220 (diff) | |
download | linux-0a72e7f44964b9ada3e5c15820372e9cb119bf80.tar.gz linux-0a72e7f44964b9ada3e5c15820372e9cb119bf80.tar.bz2 linux-0a72e7f44964b9ada3e5c15820372e9cb119bf80.zip |
block: add accessors for setting/querying request deadline
We reduce the resolution of request expiry, but since we're already
using jiffies for this where resolution depends on the kernel
configuration and since the timeout resolution is coarse anyway,
that should be fine.
Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
Reviewed-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/blk.h')
-rw-r--r-- | block/blk.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/block/blk.h b/block/blk.h index eb306c52121e..bcd9cf7db0d4 100644 --- a/block/blk.h +++ b/block/blk.h @@ -237,6 +237,21 @@ static inline void req_set_nomerge(struct request_queue *q, struct request *req) } /* + * Steal a bit from this field for legacy IO path atomic IO marking. Note that + * setting the deadline clears the bottom bit, potentially clearing the + * completed bit. The user has to be OK with this (current ones are fine). + */ +static inline void blk_rq_set_deadline(struct request *rq, unsigned long time) +{ + rq->__deadline = time & ~0x1UL; +} + +static inline unsigned long blk_rq_deadline(struct request *rq) +{ + return rq->__deadline & ~0x1UL; +} + +/* * Internal io_context interface */ void get_io_context(struct io_context *ioc); |