mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 08:03:01 +09:00
block: remove deadline __deadline manipulation helpers
No users left since the removal of the legacy request interface, we can remove all the magic bit stealing now and make it a normal field. But use WRITE_ONCE/READ_ONCE on the new deadline field, given that we don't seem to have any mechanism to guarantee a new value actually gets seen by other threads. Reviewed-by: Hannes Reinecke <hare@suse.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
committed by
Jens Axboe
parent
8f4236d900
commit
079076b341
@@ -84,7 +84,7 @@ void blk_abort_request(struct request *req)
|
||||
* immediately and that scan sees the new timeout value.
|
||||
* No need for fancy synchronizations.
|
||||
*/
|
||||
blk_rq_set_deadline(req, jiffies);
|
||||
WRITE_ONCE(req->deadline, jiffies);
|
||||
kblockd_schedule_work(&req->q->timeout_work);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(blk_abort_request);
|
||||
@@ -121,14 +121,16 @@ void blk_add_timer(struct request *req)
|
||||
req->timeout = q->rq_timeout;
|
||||
|
||||
req->rq_flags &= ~RQF_TIMED_OUT;
|
||||
blk_rq_set_deadline(req, jiffies + req->timeout);
|
||||
|
||||
expiry = jiffies + req->timeout;
|
||||
WRITE_ONCE(req->deadline, expiry);
|
||||
|
||||
/*
|
||||
* If the timer isn't already pending or this timeout is earlier
|
||||
* than an existing one, modify the timer. Round up to next nearest
|
||||
* second.
|
||||
*/
|
||||
expiry = blk_rq_timeout(round_jiffies_up(blk_rq_deadline(req)));
|
||||
expiry = blk_rq_timeout(round_jiffies_up(expiry));
|
||||
|
||||
if (!timer_pending(&q->timeout) ||
|
||||
time_before(expiry, q->timeout.expires)) {
|
||||
|
||||
Reference in New Issue
Block a user