[dm-devel] [PATCH] Fixes for clone_bio and __clone_and_map functions in dm.c

Alasdair G Kergon agk at redhat.com
Tue Mar 21 14:35:15 UTC 2006


> I am a little confused about why is this not a problem. Isn't 
> clone->bi_vcnt 
> supposed to hold the number of bio vectors in the clone? Why does it hold 
> idx+bv_count instead? Please clarify.
 
idx is non-zero; bv_count variable is the number starting from idx.
clone->bi_vcnt is the total number.

       unsigned int     bi_vcnt;     /* how many bio_vec's */
       unsigned int     bi_idx;      /* current index into bio_vec array */

      clone_bio(bio, ci->sector, ci->idx, bio->bi_vcnt - ci->idx, ci->sector_count);
leads to clone->bi_vcnt = ci->idx + bio->bi_vcnt - ci->idx = bio->bi_vcnt

Like I said, obfuscated.

Alasdair
-- 
agk at redhat.com




More information about the dm-devel mailing list