block: Fix page_is_mergeable() for compound pages
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 17 Aug 2020 19:52:06 +0000 (20:52 +0100)
committerJens Axboe <axboe@kernel.dk>
Tue, 18 Aug 2020 02:35:53 +0000 (19:35 -0700)
commitd81665198b83e55a28339d1f3e4890ed8a434556
treeb6038be4bcbc16680ed2cec65e10ea1cc6f63933
parentaf822aa68fbdf0a480a17462ed70232998127453
block: Fix page_is_mergeable() for compound pages

If we pass in an offset which is larger than PAGE_SIZE, then
page_is_mergeable() thinks it's not mergeable with the previous bio_vec,
leading to a large number of bio_vecs being used.  Use a slightly more
obvious test that the two pages are compatible with each other.

Fixes: 52d52d1c98a9 ("block: only allow contiguous page structs in a bio_vec")
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/bio.c