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: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
parent
ab780f1ece
commit
605401618c
@ -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);
|
|||||||
**/
|
**/
|
||||||
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);
|
||||||
|
Loading…
Reference in New Issue
Block a user