From: Christoph Hellwig <hch@infradead.org>
To: Dongsu Park <dongsu.park@profitbricks.com>
Cc: linux-kernel@vger.kernel.org, Jens Axboe <axboe@kernel.dk>,
Kent Overstreet <kmo@daterainc.com>, Ming Lin <mlin@minggr.net>,
Christoph Hellwig <hch@infradead.org>,
Al Viro <viro@zeniv.linux.org.uk>,
Ming Lei <ming.lei@canonical.com>, Neil Brown <neilb@suse.de>,
Alasdair Kergon <agk@redhat.com>,
Mike Snitzer <snitzer@redhat.com>,
dm-devel@redhat.com, drbd-dev@lists.linbit.com,
Jiri Kosina <jkosina@suse.cz>, Geoff Levand <geoff@infradead.org>,
Jim Paris <jim@jtan.com>,
Joshua Morris <josh.h.morris@us.ibm.com>,
Philip Kelleher <pjk1939@linux.vnet.ibm.com>,
Minchan Kim <minchan@kernel.org>, Nitin Gupta <ngupta@vflare.org>,
Oleg Drokin <oleg.drokin@intel.com>,
Andreas Dilger <andreas.dilger@intel.com>
Subject: Re: [RFC PATCH 01/17] block: make generic_make_request handle arbitrarily sized bios
Date: Tue, 23 Dec 2014 02:16:14 -0800 [thread overview]
Message-ID: <20141223101614.GA13138@infradead.org> (raw)
In-Reply-To: <d26a9a0fc9a7d1529c115785ee5935d5750782bd.1419241597.git.dongsu.park@profitbricks.com>
> +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.
WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@infradead.org>
To: Dongsu Park <dongsu.park@profitbricks.com>
Cc: Jens Axboe <axboe@kernel.dk>, Oleg Drokin <oleg.drokin@intel.com>,
Nitin Gupta <ngupta@vflare.org>,
Mike Snitzer <snitzer@redhat.com>, Ming Lin <mlin@minggr.net>,
Minchan Kim <minchan@kernel.org>, Neil Brown <neilb@suse.de>,
Jiri Kosina <jkosina@suse.cz>, Ming Lei <ming.lei@canonical.com>,
linux-kernel@vger.kernel.org, Jim Paris <jim@jtan.com>,
Philip Kelleher <pjk1939@linux.vnet.ibm.com>,
Christoph Hellwig <hch@infradead.org>,
Geoff Levand <geoff@infradead.org>,
Kent Overstreet <kmo@daterainc.com>,
Al Viro <viro@zeniv.linux.org.uk>,
Andreas Dilger <andreas.dilger@intel.com>,
dm-devel@redhat.com, Joshua Morris <josh.h.morris@us.ibm.com>,
Alasdair Kergon <agk@redhat.com>,
drbd-dev@lists.linbit.com
Subject: Re: [Drbd-dev] [RFC PATCH 01/17] block: make generic_make_request handle arbitrarily sized bios
Date: Tue, 23 Dec 2014 02:16:14 -0800 [thread overview]
Message-ID: <20141223101614.GA13138@infradead.org> (raw)
In-Reply-To: <d26a9a0fc9a7d1529c115785ee5935d5750782bd.1419241597.git.dongsu.park@profitbricks.com>
> +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.
next prev parent reply other threads:[~2014-12-23 10:16 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-22 11:48 [RFC PATCH 00/17] simplify block layer based on immutable biovecs Dongsu Park
2014-12-22 11:48 ` [RFC PATCH 01/17] block: make generic_make_request handle arbitrarily sized bios Dongsu Park
2014-12-22 11:48 ` [Drbd-dev] " Dongsu Park
2014-12-23 10:16 ` Christoph Hellwig [this message]
2014-12-23 10:16 ` Christoph Hellwig
2014-12-23 11:41 ` Dongsu Park
2014-12-23 11:41 ` [Drbd-dev] " Dongsu Park
2014-12-27 15:02 ` Christoph Hellwig
2014-12-27 15:02 ` [Drbd-dev] " Christoph Hellwig
2014-12-23 19:14 ` Geoff Levand
2014-12-24 10:37 ` Dongsu Park
2014-12-25 6:09 ` Ming Lei
2014-12-22 11:48 ` [RFC PATCH 02/17] block: simplify bio_add_page() Dongsu Park
2014-12-23 10:22 ` Christoph Hellwig
2014-12-23 11:46 ` Dongsu Park
2014-12-22 11:48 ` [RFC PATCH 03/17] block: simplify issueing discard, write_same, zeroout Dongsu Park
2014-12-23 10:23 ` Christoph Hellwig
2014-12-22 11:48 ` [RFC PATCH 04/17] bcache: clean up hacks around bio_split_pool Dongsu Park
2014-12-22 11:48 ` [RFC PATCH 05/17] btrfs: remove bio splitting and merge_bvec_fn() calls Dongsu Park
[not found] ` <e4b7b017eaa81784889ebb2a4e6a7d4366adf13a.1419241597.git.dongsu.park@profit bricks.com>
2014-12-23 14:44 ` Chris Mason
2014-12-22 11:48 ` [RFC PATCH 06/17] btrfs: make use of immutable biovecs Dongsu Park
2014-12-23 10:35 ` Christoph Hellwig
2014-12-23 12:09 ` Dongsu Park
2014-12-22 11:48 ` [RFC PATCH 07/17] block: replace sg_iovec with iov_iter Dongsu Park
2014-12-23 10:44 ` Christoph Hellwig
2014-12-23 12:18 ` Dongsu Park
2014-12-27 15:03 ` Christoph Hellwig
2014-12-22 11:48 ` [RFC PATCH 08/17] block: refactor __bio_copy_iov() Dongsu Park
2014-12-23 10:45 ` Christoph Hellwig
2014-12-23 12:24 ` Dongsu Park
2014-12-22 11:48 ` [RFC PATCH 09/17] block: refactor iov_count_pages() from bio_{copy,map}_user_iov() Dongsu Park
2014-12-22 11:48 ` [RFC PATCH 10/17] block: refactor bio_get_user_pages() from __bio_map_user_iov() Dongsu Park
2014-12-22 11:48 ` [RFC PATCH 11/17] block: allow __blk_queue_bounce() to handle bios larger than BIO_MAX_PAGES Dongsu Park
2014-12-22 11:48 ` [RFC PATCH 12/17] md/raid10: make sync_request_write() call bio_copy_data() Dongsu Park
2014-12-23 10:48 ` Christoph Hellwig
2014-12-23 12:31 ` Dongsu Park
2014-12-22 11:48 ` [RFC PATCH 13/17] md/raid5: get rid of bio_fits_rdev() Dongsu Park
2014-12-22 11:48 ` [RFC PATCH 14/17] block: kill merge_bvec_fn() completely Dongsu Park
2014-12-22 11:48 ` [Drbd-dev] " Dongsu Park
2014-12-22 11:48 ` [RFC PATCH 15/17] fs: use helper bio_add_page() instead of open coding on bi_io_vec Dongsu Park
2014-12-22 15:22 ` Dave Kleikamp
2014-12-22 15:22 ` Dave Kleikamp
2014-12-22 11:48 ` [RFC PATCH 16/17] fs: convert buffer head etc. to use immutable biovecs API Dongsu Park
2014-12-23 10:51 ` Christoph Hellwig
2014-12-23 12:33 ` Dongsu Park
2014-12-22 11:48 ` [RFC PATCH 17/17] Documentation: update notes in biovecs about arbitrarily sized bios Dongsu Park
2014-12-23 10:52 ` Christoph Hellwig
2014-12-23 12:34 ` Dongsu Park
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20141223101614.GA13138@infradead.org \
--to=hch@infradead.org \
--cc=agk@redhat.com \
--cc=andreas.dilger@intel.com \
--cc=axboe@kernel.dk \
--cc=dm-devel@redhat.com \
--cc=dongsu.park@profitbricks.com \
--cc=drbd-dev@lists.linbit.com \
--cc=geoff@infradead.org \
--cc=jim@jtan.com \
--cc=jkosina@suse.cz \
--cc=josh.h.morris@us.ibm.com \
--cc=kmo@daterainc.com \
--cc=linux-kernel@vger.kernel.org \
--cc=minchan@kernel.org \
--cc=ming.lei@canonical.com \
--cc=mlin@minggr.net \
--cc=neilb@suse.de \
--cc=ngupta@vflare.org \
--cc=oleg.drokin@intel.com \
--cc=pjk1939@linux.vnet.ibm.com \
--cc=snitzer@redhat.com \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.