提交 60540161 编写于 作者: J Jens Axboe

block: don't use bio_has_data() in the completion path

We should just check for rq->bio, as that is really the information
we are looking for. Even if the bio attached doesn't carry data,
we still need to do IO post processing on it.
Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
上级 ab780f1e
...@@ -1817,7 +1817,7 @@ static int blk_end_io(struct request *rq, int error, unsigned int nr_bytes, ...@@ -1817,7 +1817,7 @@ static int blk_end_io(struct request *rq, int error, unsigned int nr_bytes,
struct request_queue *q = rq->q; struct request_queue *q = rq->q;
unsigned long flags = 0UL; unsigned long flags = 0UL;
if (bio_has_data(rq->bio) || blk_discard_rq(rq)) { if (rq->bio) {
if (__end_that_request_first(rq, error, nr_bytes)) if (__end_that_request_first(rq, error, nr_bytes))
return 1; return 1;
...@@ -1875,8 +1875,7 @@ EXPORT_SYMBOL_GPL(blk_end_request); ...@@ -1875,8 +1875,7 @@ EXPORT_SYMBOL_GPL(blk_end_request);
**/ **/
int __blk_end_request(struct request *rq, int error, unsigned int nr_bytes) int __blk_end_request(struct request *rq, int error, unsigned int nr_bytes)
{ {
if ((bio_has_data(rq->bio) || blk_discard_rq(rq)) && if (rq->bio && __end_that_request_first(rq, error, nr_bytes))
__end_that_request_first(rq, error, nr_bytes))
return 1; return 1;
add_disk_randomness(rq->rq_disk); add_disk_randomness(rq->rq_disk);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册