Skip to content

Commit

Permalink
block: clean up __bio_add_pc_page a bit
Browse files Browse the repository at this point in the history
Share the bi_size update by moving the done label up, and duplicate
the bv_len update in the two callers to get rid of the bvec_merge
label.

Signed-off-by: Christoph Hellwig <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
  • Loading branch information
Christoph Hellwig authored and axboe committed Apr 30, 2019
1 parent 6601e44 commit dcdca75
Showing 1 changed file with 5 additions and 6 deletions.
11 changes: 5 additions & 6 deletions block/bio.c
Original file line number Diff line number Diff line change
Expand Up @@ -731,9 +731,7 @@ static int __bio_add_pc_page(struct request_queue *q, struct bio *bio,
offset == bvec->bv_offset + bvec->bv_len) {
if (put_same_page)
put_page(page);
bvec_merge:
bvec->bv_len += len;
bio->bi_iter.bi_size += len;
goto done;
}

Expand All @@ -745,8 +743,10 @@ static int __bio_add_pc_page(struct request_queue *q, struct bio *bio,
return 0;

if (page_is_mergeable(bvec, page, len, offset, false) &&
can_add_page_to_seg(q, bvec, page, len, offset))
goto bvec_merge;
can_add_page_to_seg(q, bvec, page, len, offset)) {
bvec->bv_len += len;
goto done;
}
}

if (bio_full(bio))
Expand All @@ -760,9 +760,8 @@ static int __bio_add_pc_page(struct request_queue *q, struct bio *bio,
bvec->bv_len = len;
bvec->bv_offset = offset;
bio->bi_vcnt++;
bio->bi_iter.bi_size += len;

done:
bio->bi_iter.bi_size += len;
bio->bi_phys_segments = bio->bi_vcnt;
bio_set_flag(bio, BIO_SEG_VALID);
return len;
Expand Down

0 comments on commit dcdca75

Please sign in to comment.