bch_bio_alloc_pages() is always called on one new bio, so it is safe to access the bvec table directly. Given it is the only kind of this case, open code the bvec table access since bio_for_each_segment_all() will be changed to support for iterating over multipage bvec. Cc: Dave Chinner <dchinner@xxxxxxxxxx> Cc: Kent Overstreet <kent.overstreet@xxxxxxxxx> Acked-by: Coly Li <colyli@xxxxxxx> Cc: Mike Snitzer <snitzer@xxxxxxxxxx> Cc: dm-devel@xxxxxxxxxx Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx> Cc: linux-fsdevel@xxxxxxxxxxxxxxx Cc: Shaohua Li <shli@xxxxxxxxxx> Cc: linux-raid@xxxxxxxxxxxxxxx Cc: linux-erofs@xxxxxxxxxxxxxxxx Cc: David Sterba <dsterba@xxxxxxxx> Cc: linux-btrfs@xxxxxxxxxxxxxxx Cc: Darrick J. Wong <darrick.wong@xxxxxxxxxx> Cc: linux-xfs@xxxxxxxxxxxxxxx Cc: Gao Xiang <gaoxiang25@xxxxxxxxxx> Cc: Christoph Hellwig <hch@xxxxxx> Cc: Theodore Ts'o <tytso@xxxxxxx> Cc: linux-ext4@xxxxxxxxxxxxxxx Cc: Coly Li <colyli@xxxxxxx> Cc: linux-bcache@xxxxxxxxxxxxxxx Cc: Boaz Harrosh <ooo@xxxxxxxxxxxxxxx> Cc: Bob Peterson <rpeterso@xxxxxxxxxx> Cc: cluster-devel@xxxxxxxxxx Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx> --- drivers/md/bcache/util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/md/bcache/util.c b/drivers/md/bcache/util.c index 20eddeac1531..8517aebcda2d 100644 --- a/drivers/md/bcache/util.c +++ b/drivers/md/bcache/util.c @@ -270,7 +270,7 @@ int bch_bio_alloc_pages(struct bio *bio, gfp_t gfp_mask) int i; struct bio_vec *bv; - bio_for_each_segment_all(bv, bio, i) { + for (i = 0, bv = bio->bi_io_vec; i < bio->bi_vcnt; bv++) { bv->bv_page = alloc_page(gfp_mask); if (!bv->bv_page) { while (--bv >= bio->bi_io_vec) -- 2.9.5