Thread (1 message) 1 message, 1 author, 2012-05-24

Re: [PATCH v2 04/14] block: Add bio_clone_kmalloc()

From: Yehuda Sadeh <hidden>
Date: 2012-05-24 21:41:24
Also in: dm-devel, linux-fsdevel, lkml

On Thu, May 24, 2012 at 11:59 AM, Vivek Goyal [off-list ref] wrote:
On Wed, May 23, 2012 at 05:02:41PM -0700, Kent Overstreet wrote:

[..]
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help