From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail09.linbit.com (LINBIT Mail Daemon) with ESMTPS id A861B1045C29 for ; Tue, 23 Dec 2014 11:34:09 +0100 (CET) Date: Tue, 23 Dec 2014 02:16:14 -0800 From: Christoph Hellwig To: Dongsu Park Message-ID: <20141223101614.GA13138@infradead.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Cc: Jens Axboe , Oleg Drokin , Nitin Gupta , Mike Snitzer , Ming Lin , Minchan Kim , Neil Brown , Jiri Kosina , Ming Lei , linux-kernel@vger.kernel.org, Jim Paris , Philip Kelleher , Christoph Hellwig , Geoff Levand , Kent Overstreet , Al Viro , Andreas Dilger , dm-devel@redhat.com, Joshua Morris , Alasdair Kergon , drbd-dev@lists.linbit.com Subject: Re: [Drbd-dev] [RFC PATCH 01/17] 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: , > +void blk_queue_split(struct request_queue *q, struct bio **bio, > + struct bio_set *bs) > +{ > + struct bio *split; > + > + if ((*bio)->bi_rw & REQ_DISCARD) > + split = blk_bio_discard_split(q, *bio, bs); > + else if ((*bio)->bi_rw & REQ_WRITE_SAME) > + split = blk_bio_write_same_split(q, *bio, bs); > + else > + split = blk_bio_segment_split(q, *bio, q->bio_split); > + > + if (split) { > + bio_chain(split, *bio); > + generic_make_request(*bio); > + *bio = split; > + } > +} > +EXPORT_SYMBOL(blk_queue_split); I think blk_queue_split needs to explicitly skip BLOCK_PC bios. Those are SCSI pass through ioctls that we can't split due to their opaque nature.