4.4-stable review patch.  If anyone has any objections, please let me know.


From: Shaohua Li <s...@fb.com>

commit 9c573de3283af007ea11c17bde1e4568d9417328 upstream.

blk_queue_split marks bio unmergeable, which makes sense for normal bio.
But if dispatching the bio to underlayer disk, the blk_queue_split
checks are invalid, hence it's possible the bio becomes mergeable.

In the reported bug, this bug causes trim against raid0 performance slash

Reported-and-tested-by: Park Ju Hyung <qkrwngud...@gmail.com>
Fixes: 6ac45aeb6bca(block: avoid to merge splitted bio)
Cc: Ming Lei <ming....@canonical.com>
Cc: Neil Brown <ne...@suse.de>
Reviewed-by: Jens Axboe <ax...@fb.com>
Signed-off-by: Shaohua Li <s...@fb.com>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

 drivers/md/md.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -293,6 +293,8 @@ static blk_qc_t md_make_request(struct r
         * go away inside make_request
        sectors = bio_sectors(bio);
+       /* bio could be mergeable after passing to underlayer */
+       bio->bi_rw &= ~REQ_NOMERGE;
        mddev->pers->make_request(mddev, bio);
        cpu = part_stat_lock();

Reply via email to