[PATCHv5 1/2] block: accumulate memory segment gaps per bio

Eric Auger eauger at redhat.com
Mon Aug 17 09:37:25 PDT 2026


Hi Keith,
On 8/17/26 6:05 PM, Keith Busch wrote:
> ---
> diff --git a/block/bio.c b/block/bio.c
> index 4074a0496b93f..c343788e1f96e 100644
> --- a/block/bio.c
> +++ b/block/bio.c
> @@ -859,6 +859,7 @@ static int __bio_clone(struct bio *bio, struct bio *bio_src, gfp_t gfp)
>  	bio->bi_ioprio = bio_src->bi_ioprio;
>  	bio->bi_write_hint = bio_src->bi_write_hint;
>  	bio->bi_write_stream = bio_src->bi_write_stream;
> +	bio->bi_bvec_gap_bit = bio_src->bi_bvec_gap_bit;
>  	bio->bi_iter = bio_src->bi_iter;
>  
>  	if (bio->bi_bdev) {
> @@ -1969,6 +1970,7 @@ struct bio *bio_split(struct bio *bio, int sectors,
>  		bio_integrity_trim(split);
>  
>  	bio_advance(bio, split->bi_iter.bi_size);
> +	bio->bi_bvec_gap_bit = 0;
>  
>  	if (bio_flagged(bio, BIO_TRACE_COMPLETION))
>  		bio_set_flag(split, BIO_TRACE_COMPLETION);
> --
Many thanks for your quick investigations. With that patch I do not see
the IO errors anymore so it seems it fixes my issues.

Thanks

Eric




More information about the Linux-nvme mailing list