X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=drivers%2Fmd%2Fdm-stripe.c;h=b240e85ae39aa4b444135b0a71823e35b03aac49;hb=af4874e03ed82f050d5872d8c39ce64bf16b5c38;hp=c64fe827a5f19abc60c2040b0690ca9b5003598c;hpb=374bf7e7f6cc38b0483351a2029a97910eadde1b;p=safe%2Fjmp%2Flinux-2.6 diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c index c64fe82..b240e85 100644 --- a/drivers/md/dm-stripe.c +++ b/drivers/md/dm-stripe.c @@ -313,15 +313,31 @@ static int stripe_end_io(struct dm_target *ti, struct bio *bio, return error; } +static int stripe_iterate_devices(struct dm_target *ti, + iterate_devices_callout_fn fn, void *data) +{ + struct stripe_c *sc = ti->private; + int ret = 0; + unsigned i = 0; + + do + ret = fn(ti, sc->stripe[i].dev, + sc->stripe[i].physical_start, data); + while (!ret && ++i < sc->stripes); + + return ret; +} + static struct target_type stripe_target = { .name = "striped", - .version = {1, 1, 0}, + .version = {1, 2, 0}, .module = THIS_MODULE, .ctr = stripe_ctr, .dtr = stripe_dtr, .map = stripe_map, .end_io = stripe_end_io, .status = stripe_status, + .iterate_devices = stripe_iterate_devices, }; int __init dm_stripe_init(void)