[Drbd-dev] [PATCH v2 04/14] block: Add bio_clone_kmalloc()
Vivek Goyal
vgoyal at redhat.com
Thu May 24 20:59:19 CEST 2012
On Wed, May 23, 2012 at 05:02:41PM -0700, Kent Overstreet wrote:
[..]
> diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
> index 013c7a5..5a953c6 100644
> --- a/drivers/block/rbd.c
> +++ b/drivers/block/rbd.c
> @@ -729,7 +729,7 @@ static struct bio *bio_chain_clone(struct bio **old, struct bio **next,
> }
>
> while (old_chain && (total < len)) {
> - tmp = bio_kmalloc(gfpmask, old_chain->bi_max_vecs);
> + tmp = bio_clone_kmalloc(old_chain, gfpmask);
> if (!tmp)
> goto err_out;
>
> @@ -751,13 +751,9 @@ static struct bio *bio_chain_clone(struct bio **old, struct bio **next,
> if (!bp)
> goto err_out;
>
> - __bio_clone(tmp, &bp->bio1);
> -
> *next = &bp->bio2;
Is this code correct. Now original code might clone bio after split and
new code will clone the original bio itself and not the split one?
Thanks
Vivek
More information about the drbd-dev
mailing list