• Tejun Heo's avatar
    blk-mq: remove REQ_ATOM_COMPLETE usages from blk-mq · 634f9e46
    Tejun Heo authored
    After the recent updates to use generation number and state based
    synchronization, blk-mq no longer depends on REQ_ATOM_COMPLETE except
    to avoid firing the same timeout multiple times.
    
    Remove all REQ_ATOM_COMPLETE usages and use a new rq_flags flag
    RQF_MQ_TIMEOUT_EXPIRED to avoid firing the same timeout multiple
    times.  This removes atomic bitops from hot paths too.
    
    v2: Removed blk_clear_rq_complete() from blk_mq_rq_timed_out().
    
    v3: Added RQF_MQ_TIMEOUT_EXPIRED flag.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Cc: "jianchao.wang" <jianchao.w.wang@oracle.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    634f9e46
blk-mq.c 75.9 KB