> 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@xxxxxxxxxx -- dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel