From 6952a7f8446ee85ea9d10ab87b64797a031eaae3 Mon Sep 17 00:00:00 2001 From: Ming Lei Date: Fri, 8 Nov 2019 18:15:28 +0800 Subject: block: split bio if the only bvec's length is > SZ_4K 64K PAGE_SIZE is popular on ARM64 or other ARCHs, and 64K has been big enough to break some devices probably, so change the logic to split bio if the only bvec's length is > SZ_4K instead of PAGE_SIZE. Fixes: fa5322872187 (block: avoid blk_bio_segment_split for small I/O operations) Cc: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe --- block/blk-merge.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'block/blk-merge.c') diff --git a/block/blk-merge.c b/block/blk-merge.c index d783bdc4559b..f35327f63ef4 100644 --- a/block/blk-merge.c +++ b/block/blk-merge.c @@ -320,7 +320,7 @@ void __blk_queue_split(struct request_queue *q, struct bio **bio, if (!q->limits.chunk_sectors && (*bio)->bi_vcnt == 1 && ((*bio)->bi_io_vec[0].bv_len + - (*bio)->bi_io_vec[0].bv_offset) <= PAGE_SIZE) { + (*bio)->bi_io_vec[0].bv_offset) <= SZ_4K) { *nr_segs = 1; break; } -- cgit v1.2.3