Lines Matching refs:m

145 	struct mirror *m;  member
166 static void bio_set_m(struct bio *bio, struct mirror *m) in bio_set_m() argument
168 bio->bi_next = (struct bio *) m; in bio_set_m()
176 static void set_default_mirror(struct mirror *m) in set_default_mirror() argument
178 struct mirror_set *ms = m->ms; in set_default_mirror()
181 atomic_set(&ms->default_mirror, m - m0); in set_default_mirror()
186 struct mirror *m; in get_valid_mirror() local
188 for (m = ms->mirror; m < ms->mirror + ms->nr_mirrors; m++) in get_valid_mirror()
189 if (!atomic_read(&m->error_count)) in get_valid_mirror()
190 return m; in get_valid_mirror()
209 static void fail_mirror(struct mirror *m, enum dm_raid1_error error_type) in fail_mirror() argument
211 struct mirror_set *ms = m->ms; in fail_mirror()
221 atomic_inc(&m->error_count); in fail_mirror()
223 if (test_and_set_bit(error_type, &m->error_type)) in fail_mirror()
229 if (m != get_default_mirror(ms)) in fail_mirror()
238 "Reads may fail.", m->dev->name); in fail_mirror()
259 struct mirror *m; in mirror_flush() local
267 for (i = 0, m = ms->mirror; i < ms->nr_mirrors; i++, m++) { in mirror_flush()
268 io[i].bdev = m->dev->bdev; in mirror_flush()
298 int m, bit = 0; in recovery_complete() local
313 for (m = 0; m < ms->nr_mirrors; m++) { in recovery_complete()
314 if (&ms->mirror[m] == get_default_mirror(ms)) in recovery_complete()
317 fail_mirror(ms->mirror + m, in recovery_complete()
331 struct mirror *m; in recover() local
337 m = get_default_mirror(ms); in recover()
338 from.bdev = m->dev->bdev; in recover()
339 from.sector = m->offset + dm_rh_region_to_sector(ms->rh, key); in recover()
356 m = ms->mirror + i; in recover()
357 dest->bdev = m->dev->bdev; in recover()
358 dest->sector = m->offset + dm_rh_region_to_sector(ms->rh, key); in recover()
409 struct mirror *m = get_default_mirror(ms); in choose_mirror() local
412 if (likely(!atomic_read(&m->error_count))) in choose_mirror()
413 return m; in choose_mirror()
415 if (m-- == ms->mirror) in choose_mirror()
416 m += ms->nr_mirrors; in choose_mirror()
417 } while (m != get_default_mirror(ms)); in choose_mirror()
422 static int default_ok(struct mirror *m) in default_ok() argument
424 struct mirror *default_mirror = get_default_mirror(m->ms); in default_ok()
443 static sector_t map_sector(struct mirror *m, struct bio *bio) in map_sector() argument
447 return m->offset + dm_target_offset(m->ms->ti, bio->bi_iter.bi_sector); in map_sector()
450 static void map_bio(struct mirror *m, struct bio *bio) in map_bio() argument
452 bio->bi_bdev = m->dev->bdev; in map_bio()
453 bio->bi_iter.bi_sector = map_sector(m, bio); in map_bio()
456 static void map_region(struct dm_io_region *io, struct mirror *m, in map_region() argument
459 io->bdev = m->dev->bdev; in map_region()
460 io->sector = map_sector(m, bio); in map_region()
498 struct mirror *m; in read_callback() local
500 m = bio_get_m(bio); in read_callback()
508 fail_mirror(m, DM_RAID1_READ_ERROR); in read_callback()
510 if (likely(default_ok(m)) || mirror_available(m->ms, bio)) { in read_callback()
513 m->dev->name); in read_callback()
514 queue_bio(m->ms, bio, bio_rw(bio)); in read_callback()
519 m->dev->name); in read_callback()
524 static void read_async_bio(struct mirror *m, struct bio *bio) in read_async_bio() argument
533 .client = m->ms->io_client, in read_async_bio()
536 map_region(&io, m, bio); in read_async_bio()
537 bio_set_m(bio, m); in read_async_bio()
552 struct mirror *m; in do_reads() local
556 m = get_default_mirror(ms); in do_reads()
562 m = choose_mirror(ms, bio->bi_iter.bi_sector); in do_reads()
563 else if (m && atomic_read(&m->error_count)) in do_reads()
564 m = NULL; in do_reads()
566 if (likely(m)) in do_reads()
567 read_async_bio(m, bio); in do_reads()
638 struct mirror *m; in do_write() local
654 for (i = 0, m = ms->mirror; i < ms->nr_mirrors; i++, m++) in do_write()
655 map_region(dest++, m, bio); in do_write()
911 unsigned int m) in free_context() argument
913 while (m--) in free_context()
914 dm_put_device(ti, ms->mirror[m].dev); in free_context()
1037 unsigned int nr_mirrors, m, args_used; in mirror_ctr() local
1071 for (m = 0; m < nr_mirrors; m++) { in mirror_ctr()
1072 r = get_mirror(ms, ti, m, argv); in mirror_ctr()
1074 free_context(ms, ti, m); in mirror_ctr()
1159 struct mirror *m; in mirror_map() local
1193 m = choose_mirror(ms, bio->bi_iter.bi_sector); in mirror_map()
1194 if (unlikely(!m)) in mirror_map()
1198 bio_record->m = m; in mirror_map()
1200 map_bio(m, bio); in mirror_map()
1209 struct mirror *m = NULL; in mirror_end_io() local
1240 m = bio_record->m; in mirror_end_io()
1243 m->dev->name); in mirror_end_io()
1245 fail_mirror(m, DM_RAID1_READ_ERROR); in mirror_end_io()
1251 if (default_ok(m) || mirror_available(ms, bio)) { in mirror_end_io()
1352 static char device_status_char(struct mirror *m) in device_status_char() argument
1354 if (!atomic_read(&(m->error_count))) in device_status_char()
1357 return (test_bit(DM_RAID1_FLUSH_ERROR, &(m->error_type))) ? 'F' : in device_status_char()
1358 (test_bit(DM_RAID1_WRITE_ERROR, &(m->error_type))) ? 'D' : in device_status_char()
1359 (test_bit(DM_RAID1_SYNC_ERROR, &(m->error_type))) ? 'S' : in device_status_char()
1360 (test_bit(DM_RAID1_READ_ERROR, &(m->error_type))) ? 'R' : 'U'; in device_status_char()
1367 unsigned int m, sz = 0; in mirror_status() local
1375 for (m = 0; m < ms->nr_mirrors; m++) { in mirror_status()
1376 DMEMIT("%s ", ms->mirror[m].dev->name); in mirror_status()
1377 buffer[m] = device_status_char(&(ms->mirror[m])); in mirror_status()
1379 buffer[m] = '\0'; in mirror_status()
1393 for (m = 0; m < ms->nr_mirrors; m++) in mirror_status()
1394 DMEMIT(" %s %llu", ms->mirror[m].dev->name, in mirror_status()
1395 (unsigned long long)ms->mirror[m].offset); in mirror_status()