Re: [PATCH v5 00/11] simplify block layer based on immutable biovecs

Ming Lin
2015-07-16T07:06:17Z

On Mon, 2015-07-13 at 11:35 -0400, Mike Snitzer wrote:
> I will do additional review to answer 1 and 2 above. And Jeff Moyer
> told me he'd test the patchset on one of his testbeds.

Hi Jeff,

FYI, here is a fix for patch 1.
Or you can pull from my tree.
https://git.kernel.org/cgit/linux/kernel/git/mlin/linux.git/log/?h=block-generic-req

diff --git a/block/blk-mq.c b/block/blk-mq.c
index 40d08e3..181f343 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -1287,12 +1287,12 @@ static void blk_mq_make_request(struct request_queue *q, struct bio *bio)
return;
}

+ blk_queue_split(q, &bio, q->bio_split);
+
if (!is_flush_fua && !blk_queue_nomerges(q) &&
blk_attempt_plug_merge(q, bio, &request_count, &same_queue_rq))
return;

- blk_queue_split(q, &bio, q->bio_split);
-
rq = blk_mq_map_request(q, bio, &data);
if (unlikely(!rq))
return;
@@ -1374,12 +1374,12 @@ static void blk_sq_make_request(struct request_queue *q, struct bio *bio)
return;
}

+ blk_queue_split(q, &bio, q->bio_split);
+
if (!is_flush_fua && !blk_queue_nomerges(q) &&
blk_attempt_plug_merge(q, bio, &request_count, NULL))
return;

- blk_queue_split(q, &bio, q->bio_split);
-
rq = blk_mq_map_request(q, bio, &data);
if (unlikely(!rq))
return;