> +static sector_t map_to_core(struct dm_target *ti, struct bio *bio) > +{ > + struct unstripe_c *uc = ti->private; > + sector_t sector = bio->bi_iter.bi_sector; > + > + /* Account for what stripe we're operating on */ > + sector += uc->unstripe_offset; > + > + /* Shift us up to the right "row" on the stripe */ > + sector += uc->unstripe_width * (sector >> uc->chunk_shift); > + return sector; > +} This doesn't work anymore, previously we had a "group" local variable, but removed it out. Now we're calculating the group based *after* we switch up the stripe. we need to swap the two sector += then it will work: /* Shift us up to the right "row" on the stripe */ sector += uc->unstripe_width * (sector >> uc->chunk_shift); /* Account for what stripe we're operating on */ sector += uc->unstripe_offset; -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel