diff options
Diffstat (limited to 'drivers/md/dm-stripe.c')
-rw-r--r-- | drivers/md/dm-stripe.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c index c64fe827a5f1..b240e85ae39a 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, | |||
313 | return error; | 313 | return error; |
314 | } | 314 | } |
315 | 315 | ||
316 | static int stripe_iterate_devices(struct dm_target *ti, | ||
317 | iterate_devices_callout_fn fn, void *data) | ||
318 | { | ||
319 | struct stripe_c *sc = ti->private; | ||
320 | int ret = 0; | ||
321 | unsigned i = 0; | ||
322 | |||
323 | do | ||
324 | ret = fn(ti, sc->stripe[i].dev, | ||
325 | sc->stripe[i].physical_start, data); | ||
326 | while (!ret && ++i < sc->stripes); | ||
327 | |||
328 | return ret; | ||
329 | } | ||
330 | |||
316 | static struct target_type stripe_target = { | 331 | static struct target_type stripe_target = { |
317 | .name = "striped", | 332 | .name = "striped", |
318 | .version = {1, 1, 0}, | 333 | .version = {1, 2, 0}, |
319 | .module = THIS_MODULE, | 334 | .module = THIS_MODULE, |
320 | .ctr = stripe_ctr, | 335 | .ctr = stripe_ctr, |
321 | .dtr = stripe_dtr, | 336 | .dtr = stripe_dtr, |
322 | .map = stripe_map, | 337 | .map = stripe_map, |
323 | .end_io = stripe_end_io, | 338 | .end_io = stripe_end_io, |
324 | .status = stripe_status, | 339 | .status = stripe_status, |
340 | .iterate_devices = stripe_iterate_devices, | ||
325 | }; | 341 | }; |
326 | 342 | ||
327 | int __init dm_stripe_init(void) | 343 | int __init dm_stripe_init(void) |