From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Hellwig Subject: Re: [PATCH v3 01/11] block: make generic_make_request handle arbitrarily sized bios Date: Wed, 20 May 2015 14:44:18 +0200 Message-ID: <20150520124418.GA15594@lst.de> References: <1430980461-5235-1-git-send-email-mlin@kernel.org> <1430980461-5235-2-git-send-email-mlin@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <1430980461-5235-2-git-send-email-mlin@kernel.org> Sender: linux-kernel-owner@vger.kernel.org To: Ming Lin Cc: linux-kernel@vger.kernel.org, Christoph Hellwig , Jens Axboe , Kent Overstreet , Dongsu Park , Christoph Hellwig , Al Viro , Ming Lei , Neil Brown , Alasdair Kergon , Mike Snitzer , dm-devel@redhat.com, Lars Ellenberg , drbd-user@lists.linbit.com, Jiri Kosina , Geoff Levand , Jim Paris , Joshua Morris , Philip Kelleher , Minchan Kim , Nitin Gupta , Oleg Drokin , Andreas Dilger List-Id: dm-devel.ids This needs the patch below for the blk-mq case with multiple queues. Also I wonder why we really want to push this below ->make_request. Moving it just outside ->make_request would make the callchain more obvious and avoid the recursion into the driver. diff --git a/block/blk-mq.c b/block/blk-mq.c index e9bbc04..e7fae76 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -1256,6 +1256,8 @@ static void blk_mq_make_request(struct request_queue *q, struct bio *bio) return; } + blk_queue_split(q, &bio, q->bio_split); + rq = blk_mq_map_request(q, bio, &data); if (unlikely(!rq)) return; From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Wed, 20 May 2015 14:44:18 +0200 From: Christoph Hellwig To: Ming Lin Message-ID: <20150520124418.GA15594@lst.de> References: <1430980461-5235-1-git-send-email-mlin@kernel.org> <1430980461-5235-2-git-send-email-mlin@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1430980461-5235-2-git-send-email-mlin@kernel.org> Cc: Mike Snitzer , Neil Brown , Ming Lei , dm-devel@redhat.com, Christoph Hellwig , Alasdair Kergon , Lars Ellenberg , Philip Kelleher , Joshua Morris , Christoph Hellwig , Kent Overstreet , Nitin Gupta , Oleg Drokin , Al Viro , Jens Axboe , Andreas Dilger , Geoff Levand , Jiri Kosina , linux-kernel@vger.kernel.org, Jim Paris , Minchan Kim , Dongsu Park , drbd-user@lists.linbit.com Subject: Re: [Drbd-dev] [PATCH v3 01/11] block: make generic_make_request handle arbitrarily sized bios List-Id: "*Coordination* of development, patches, contributions -- *Questions* \(even to developers\) go to drbd-user, please." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , This needs the patch below for the blk-mq case with multiple queues. Also I wonder why we really want to push this below ->make_request. Moving it just outside ->make_request would make the callchain more obvious and avoid the recursion into the driver. diff --git a/block/blk-mq.c b/block/blk-mq.c index e9bbc04..e7fae76 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -1256,6 +1256,8 @@ static void blk_mq_make_request(struct request_queue *q, struct bio *bio) return; } + blk_queue_split(q, &bio, q->bio_split); + rq = blk_mq_map_request(q, bio, &data); if (unlikely(!rq)) return;