On Tue, Dec 23, 2014 at 12:41:40PM +0100, Dongsu Park wrote:
> You mean, checking rq->cmd_type == REQ_TYPE_BLOCK_PC, right?
>
> I'm wondering about how to check that in blk_queue_split().
> At the moment when blk_queue_split() is called, it's even before a request
> is mapped e.g. in blk_sq_make_r
On Mon, Dec 22, 2014 at 7:48 PM, Dongsu Park
wrote:
> From: Kent Overstreet
>
> The way the block layer is currently written, it goes to great lengths
> to avoid having to split bios; upper layer code (such as bio_add_page())
> checks what the underlying device can handle and tries to always crea
On 23.12.2014 11:14, Geoff Levand wrote:
> On Mon, 2014-12-22 at 12:48 +0100, Dongsu Park wrote:
> > From: Kent Overstreet
>
> > --- a/drivers/block/ps3vram.c
> > +++ b/drivers/block/ps3vram.c
> > @@ -603,6 +603,8 @@ static void ps3vram_make_request(struct request_queue
> > *q, struct bio *bio)
Hi,
On Mon, 2014-12-22 at 12:48 +0100, Dongsu Park wrote:
> From: Kent Overstreet
> --- a/drivers/block/ps3vram.c
> +++ b/drivers/block/ps3vram.c
> @@ -603,6 +603,8 @@ static void ps3vram_make_request(struct request_queue *q,
> struct bio *bio)
> struct ps3vram_priv *priv = ps3_system_bus
Hi Christoph,
On 23.12.2014 02:16, Christoph Hellwig wrote:
> > +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
> +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)
> +
From: Kent Overstreet
The way the block layer is currently written, it goes to great lengths
to avoid having to split bios; upper layer code (such as bio_add_page())
checks what the underlying device can handle and tries to always create
bios that don't need to be split.
But this approach become
7 matches
Mail list logo