blk-mq: remove REQ_ATOM_COMPLETE usages from blk-mq
authorTejun Heo <tj@kernel.org>
Tue, 9 Jan 2018 16:29:51 +0000 (08:29 -0800)
committerJens Axboe <axboe@kernel.dk>
Tue, 9 Jan 2018 16:31:15 +0000 (09:31 -0700)
commit634f9e4631a88025d3b90c1884e9a1b6a13d01d2
tree181882ff0dc0d5b0844ede83e2cfc954e28df69f
parent358f70da49d77c43f2ca11b5da584213b2add29c
blk-mq: remove REQ_ATOM_COMPLETE usages from blk-mq

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: Tejun Heo <tj@kernel.org>
Cc: "jianchao.wang" <jianchao.w.wang@oracle.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-mq.c
block/blk-timeout.c
include/linux/blkdev.h