block: check bio_mergeable() early before merging
After bio splitting is introduced, one bio can be splitted and it is marked as NOMERGE because it is too fat to be merged, so check bio_mergeable() earlier to avoid to try to merge it unnecessarily. Signed-off-by: Ming Lei <ming.lei@canonical.com> Reviewed-by: Jeff Moyer <jmoyer@redhat.com> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
Родитель
e18378a60e
Коммит
7460d389c0
|
@ -420,7 +420,7 @@ int elv_merge(struct request_queue *q, struct request **req, struct bio *bio)
|
||||||
* noxmerges: Only simple one-hit cache try
|
* noxmerges: Only simple one-hit cache try
|
||||||
* merges: All merge tries attempted
|
* merges: All merge tries attempted
|
||||||
*/
|
*/
|
||||||
if (blk_queue_nomerges(q))
|
if (blk_queue_nomerges(q) || !bio_mergeable(bio))
|
||||||
return ELEVATOR_NO_MERGE;
|
return ELEVATOR_NO_MERGE;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Загрузка…
Ссылка в новой задаче