mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04: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 <[email protected]> Signed-off-by: Christoph Hellwig <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
This commit is contained in:
parent
8f4236d900
commit
079076b341
4 changed files with 8 additions and 43 deletions
35
block/blk.h
35
block/blk.h
|
|
@ -238,26 +238,6 @@ void blk_account_io_start(struct request *req, bool new_io);
|
|||
void blk_account_io_completion(struct request *req, unsigned int bytes);
|
||||
void blk_account_io_done(struct request *req, u64 now);
|
||||
|
||||
/*
|
||||
* EH timer and IO completion will both attempt to 'grab' the request, make
|
||||
* sure that only one of them succeeds. Steal the bottom bit of the
|
||||
* __deadline field for this.
|
||||
*/
|
||||
static inline int blk_mark_rq_complete(struct request *rq)
|
||||
{
|
||||
return test_and_set_bit(0, &rq->__deadline);
|
||||
}
|
||||
|
||||
static inline void blk_clear_rq_complete(struct request *rq)
|
||||
{
|
||||
clear_bit(0, &rq->__deadline);
|
||||
}
|
||||
|
||||
static inline bool blk_rq_is_complete(struct request *rq)
|
||||
{
|
||||
return test_bit(0, &rq->__deadline);
|
||||
}
|
||||
|
||||
/*
|
||||
* Internal elevator interface
|
||||
*/
|
||||
|
|
@ -322,21 +302,6 @@ static inline void req_set_nomerge(struct request_queue *q, struct request *req)
|
|||
q->last_merge = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* 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
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in a new issue