On 10/29/19 4:51 AM, Ming Lei wrote: > diff --git a/block/blk-merge.c b/block/blk-merge.c > index 48e6725b32ee..737bbec9e153 100644 > --- a/block/blk-merge.c > +++ b/block/blk-merge.c > @@ -309,6 +309,10 @@ void __blk_queue_split(struct request_queue *q, struct bio **bio, > nr_segs); > break; > default: > + if (!bio_flagged(*bio, BIO_MULTI_PAGE)) { > + *nr_segs = 1; > + return; > + } > split = blk_bio_segment_split(q, *bio, &q->bio_split, nr_segs); > break; > } Can we just make that: default: if (!bio_flagged(*bio, BIO_MULTI_PAGE)) { *nr_segs = 1; split = NULL; } else { split = blk_bio_segment_split(q, *bio, &q->bio_split, nr_segs); } break; Otherwise this looks fine to me, and the win is palatable. -- Jens Axboe