Lines Matching full:zone
45 pr_debug("md: RAID0 configuration for %s - %d zone%s\n", in dump_zones()
55 pr_debug("md: zone%d=[%s]\n", j, line); in dump_zones()
58 pr_debug(" zone-offset=%10lluKB, device-offset=%10lluKB, size=%10lluKB\n", in dump_zones()
71 struct strip_zone *zone; in create_strip_zones() local
157 /* The first zone must contain all devices, so here we check that in create_strip_zones()
160 zone = &conf->strip_zone[0]; in create_strip_zones()
208 zone->nb_dev = cnt; in create_strip_zones()
209 zone->zone_end = smallest->sectors * cnt; in create_strip_zones()
211 curr_zone_end = zone->zone_end; in create_strip_zones()
218 zone = conf->strip_zone + i; in create_strip_zones()
221 pr_debug("md/raid0:%s: zone %d\n", mdname(mddev), i); in create_strip_zones()
222 zone->dev_start = smallest->sectors; in create_strip_zones()
228 if (rdev->sectors <= zone->dev_start) { in create_strip_zones()
248 zone->nb_dev = c; in create_strip_zones()
249 sectors = (smallest->sectors - zone->dev_start) * c; in create_strip_zones()
250 pr_debug("md/raid0:%s: zone->nb_dev: %d, sectors: %llu\n", in create_strip_zones()
252 zone->nb_dev, (unsigned long long)sectors); in create_strip_zones()
255 zone->zone_end = curr_zone_end; in create_strip_zones()
257 pr_debug("md/raid0:%s: current zone start: %llu\n", in create_strip_zones()
271 pr_err("md/raid0:%s: cannot assemble multi-zone RAID0 with default_layout setting\n", in create_strip_zones()
283 zone = conf->strip_zone + i; in create_strip_zones()
284 /* disk_shift is first disk index used in the zone */ in create_strip_zones()
285 zone->disk_shift = sector_div(first_sector, in create_strip_zones()
286 zone->nb_dev); in create_strip_zones()
302 /* Find the zone which holds a particular offset
303 * Update *sectorp to be an offset in that zone
325 static struct md_rdev *map_sector(struct mddev *mddev, struct strip_zone *zone, in map_sector() argument
339 /* chunk in zone */ in map_sector()
342 sector_div(chunk, zone->nb_dev << chunksect_bits); in map_sector()
346 sector_div(chunk, chunk_sects * zone->nb_dev); in map_sector()
350 * real sector = chunk in device + starting of zone in map_sector()
354 return conf->devlist[(zone - conf->strip_zone)*raid_disks in map_sector()
355 + sector_div(sector, zone->nb_dev)]; in map_sector()
460 struct strip_zone *zone; in raid0_handle_discard() local
473 zone = find_zone(conf, &start); in raid0_handle_discard()
475 if (bio_end_sector(bio) > zone->zone_end) { in raid0_handle_discard()
477 zone->zone_end - bio->bi_iter.bi_sector, in raid0_handle_discard()
482 end = zone->zone_end; in raid0_handle_discard()
488 if (zone != conf->strip_zone) in raid0_handle_discard()
489 end = end - zone[-1].zone_end; in raid0_handle_discard()
491 /* Now start and end is the offset in zone */ in raid0_handle_discard()
492 stripe_size = zone->nb_dev * mddev->chunk_sectors; in raid0_handle_discard()
499 /* In the first zone the original and alternate layouts are the same */ in raid0_handle_discard()
500 if ((conf->layout == RAID0_ORIG_LAYOUT) && (zone != conf->strip_zone)) { in raid0_handle_discard()
502 start_disk_index = sector_div(orig_start, zone->nb_dev); in raid0_handle_discard()
504 zone->nb_dev, in raid0_handle_discard()
505 zone->disk_shift); in raid0_handle_discard()
507 end_disk_index = sector_div(orig_end, zone->nb_dev); in raid0_handle_discard()
509 zone->nb_dev, zone->disk_shift); in raid0_handle_discard()
523 for (disk = 0; disk < zone->nb_dev; disk++) { in raid0_handle_discard()
528 compare_disk = map_disk_shift(disk, zone->nb_dev, in raid0_handle_discard()
529 zone->disk_shift); in raid0_handle_discard()
549 rdev = conf->devlist[(zone - conf->strip_zone) * in raid0_handle_discard()
552 dev_start + zone->dev_start + rdev->data_offset, in raid0_handle_discard()
561 struct strip_zone *zone; in raid0_map_submit_bio() local
568 zone = find_zone(mddev->private, §or); in raid0_map_submit_bio()
571 tmp_dev = map_sector(mddev, zone, bio_sector, §or); in raid0_map_submit_bio()
574 tmp_dev = map_sector(mddev, zone, sector, §or); in raid0_map_submit_bio()
589 bio->bi_iter.bi_sector = sector + zone->dev_start + in raid0_map_submit_bio()