From: Ming Lei <ming.lei@canonical.com>
Date: Tue, 20 Oct 2015 15:13:53 +0000 (+0800)
Subject: block: avoid to merge splitted bio
X-Git-Tag: firefly_0821_release~176^2~811^2~6
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6ac45aeb6bcad38a2783a7d6e5da4c469497eeb0;p=firefly-linux-kernel-4.4.55.git

block: avoid to merge splitted bio

The splitted bio has been already too fat to merge, so mark it
as NOMERGE.

Reviewed-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
---

diff --git a/block/blk-merge.c b/block/blk-merge.c
index 22293fdf6514..de5716d8e525 100644
--- a/block/blk-merge.c
+++ b/block/blk-merge.c
@@ -139,6 +139,9 @@ void blk_queue_split(struct request_queue *q, struct bio **bio,
 	bio_set_flag(res, BIO_SEG_VALID);
 
 	if (split) {
+		/* there isn't chance to merge the splitted bio */
+		split->bi_rw |= REQ_NOMERGE;
+
 		bio_chain(split, *bio);
 		generic_make_request(*bio);
 		*bio = split;