In the "else" section of __clone_and_map(), we're splitting a page from the bio into two pages and mapping each part separately. Therefore, we need another tio structure to track the second part of the page. [Kevin Corry] --- diff/drivers/md/dm.c 2003-12-29 10:13:26.000000000 +0000 +++ source/drivers/md/dm.c 2003-12-29 10:14:58.000000000 +0000 @@ -492,6 +492,10 @@ len = to_sector(bv->bv_len) - max; clone = split_bvec(bio, ci->sector, ci->idx, bv->bv_offset + to_bytes(max), len); + tio = alloc_tio(ci->md); + tio->io = ci->io; + tio->ti = ti; + memset(&tio->info, 0, sizeof(tio->info)); __map_bio(ti, clone, tio); ci->sector += len;