Re: [PATCH V6 12/30] block: introduce bio_chunks()

From: Christoph Hellwig
Date: Wed Jun 13 2018 - 10:47:52 EST


> +static inline unsigned bio_chunks(struct bio *bio)
> +{
> + unsigned chunks = 0;
> + struct bio_vec bv;
> + struct bvec_iter iter;
>
> - return segs;
> + /*
> + * We special case discard/write same/write zeroes, because they
> + * interpret bi_size differently:
> + */
> + switch (bio_op(bio)) {
> + case REQ_OP_DISCARD:
> + case REQ_OP_SECURE_ERASE:
> + case REQ_OP_WRITE_ZEROES:
> + return 0;
> + case REQ_OP_WRITE_SAME:
> + return 1;
> + default:
> + bio_for_each_chunk(bv, bio, iter)
> + chunks++;
> + return chunks;

Shouldn't this just return bio->bi_vcnt?