Lines Matching refs:stripe

21 struct stripe {
44 struct stripe stripe[];
49 * drops out of a stripe volume.
62 unsigned int stripe, char **argv)
72 &sc->stripe[stripe].dev);
76 sc->stripe[stripe].physical_start = start;
100 ti->error = "Invalid stripe count";
132 sc = kmalloc(struct_size(sc, stripe, stripes), GFP_KERNEL);
170 * Get the stripe destinations.
177 ti->error = "Couldn't parse stripe destination";
179 dm_put_device(ti, sc->stripe[i].dev);
183 atomic_set(&(sc->stripe[i].error_count), 0);
197 dm_put_device(ti, sc->stripe[i].dev);
204 uint32_t *stripe, sector_t *result)
217 *stripe = sector_div(chunk, sc->stripes);
219 *stripe = chunk & (sc->stripes - 1);
234 uint32_t stripe;
236 stripe_map_sector(sc, sector, &stripe, result);
237 if (stripe == target_stripe)
247 if (target_stripe < stripe)
261 bio_set_dev(bio, sc->stripe[target_stripe].dev->bdev);
263 sc->stripe[target_stripe].physical_start;
267 /* The range doesn't map to the target stripe */
276 uint32_t stripe;
282 bio_set_dev(bio, sc->stripe[target_bio_nr].dev->bdev);
295 &stripe, &bio->bi_iter.bi_sector);
297 bio->bi_iter.bi_sector += sc->stripe[stripe].physical_start;
298 bio_set_dev(bio, sc->stripe[stripe].dev->bdev);
311 uint32_t stripe;
314 stripe_map_sector(sc, sector, &stripe, &dev_sector);
315 dev_sector += sc->stripe[stripe].physical_start;
316 dax_dev = sc->stripe[stripe].dev->dax_dev;
317 bdev = sc->stripe[stripe].dev->bdev;
332 uint32_t stripe;
334 stripe_map_sector(sc, sector, &stripe, &dev_sector);
335 dev_sector += sc->stripe[stripe].physical_start;
336 dax_dev = sc->stripe[stripe].dev->dax_dev;
337 bdev = sc->stripe[stripe].dev->bdev;
351 uint32_t stripe;
353 stripe_map_sector(sc, sector, &stripe, &dev_sector);
354 dev_sector += sc->stripe[stripe].physical_start;
355 dax_dev = sc->stripe[stripe].dev->dax_dev;
356 bdev = sc->stripe[stripe].dev->bdev;
371 uint32_t stripe;
373 stripe_map_sector(sc, sector, &stripe, &dev_sector);
374 dev_sector += sc->stripe[stripe].physical_start;
375 dax_dev = sc->stripe[stripe].dev->dax_dev;
376 bdev = sc->stripe[stripe].dev->bdev;
399 * #stripes [stripe chunk size]
415 DMEMIT("%s ", sc->stripe[i].dev->name);
419 DMEMIT("%c", atomic_read(&(sc->stripe[i].error_count)) ?
428 DMEMIT(" %s %llu", sc->stripe[i].dev->name,
429 (unsigned long long)sc->stripe[i].physical_start);
454 * Test to see which stripe drive triggered the event
460 if (!strcmp(sc->stripe[i].dev->name, major_minor)) {
461 atomic_inc(&(sc->stripe[i].error_count));
462 if (atomic_read(&(sc->stripe[i].error_count)) <
478 ret = fn(ti, sc->stripe[i].dev,
479 sc->stripe[i].physical_start,