- Subject: Re: [PATCH v2 04/14] block: Add bio_clone_kmalloc()
- From: Yehuda Sadeh <yehuda@xxxxxxxxxxx>
- Date: Thu, 24 May 2012 14:41:24 -0700
- Cc: axboe@xxxxxxxxx, Alex Elder <elder@xxxxxxxxxxx>, dm-devel@xxxxxxxxxx, Kent Overstreet <koverstreet@xxxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, tj@xxxxxxxxxx, linux-bcache@xxxxxxxxxxxxxxx, mpatocka@xxxxxxxxxx, bharrosh@xxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, sage@xxxxxxxxxxxx, agk@xxxxxxxxxx, drbd-dev@xxxxxxxxxxxxxxxx
- In-reply-to: <20120524185919.GE27550@redhat.com>
- References: <1337817771-25038-1-git-send-email-koverstreet@google.com> <1337817771-25038-5-git-send-email-koverstreet@google.com> <20120524185919.GE27550@redhat.com>
- Reply-to: device-mapper development <dm-devel@xxxxxxxxxx>
On Thu, May 24, 2012 at 11:59 AM, Vivek Goyal <vgoyal@xxxxxxxxxx> wrote:
> 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?
>
Yeah, that's wrong.
Yehuda
--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel
[DM Crypt]
[Fedora Desktop]
[ATA RAID]
[Fedora Marketing]
[Fedora Packaging]
[Fedora SELinux]
[Yosemite Discussion]
[Yosemite Photos]
[KDE Users]
[Fedora Tools]
[Fedora Docs]