Lines Matching refs:m
147 struct mirror *m; member
168 static void bio_set_m(struct bio *bio, struct mirror *m) in bio_set_m() argument
170 bio->bi_next = (struct bio *) m; in bio_set_m()
178 static void set_default_mirror(struct mirror *m) in set_default_mirror() argument
180 struct mirror_set *ms = m->ms; in set_default_mirror()
183 atomic_set(&ms->default_mirror, m - m0); in set_default_mirror()
188 struct mirror *m; in get_valid_mirror() local
190 for (m = ms->mirror; m < ms->mirror + ms->nr_mirrors; m++) in get_valid_mirror()
191 if (!atomic_read(&m->error_count)) in get_valid_mirror()
192 return m; in get_valid_mirror()
211 static void fail_mirror(struct mirror *m, enum dm_raid1_error error_type) in fail_mirror() argument
213 struct mirror_set *ms = m->ms; in fail_mirror()
223 atomic_inc(&m->error_count); in fail_mirror()
225 if (test_and_set_bit(error_type, &m->error_type)) in fail_mirror()
231 if (m != get_default_mirror(ms)) in fail_mirror()
240 "Reads may fail.", m->dev->name); in fail_mirror()
261 struct mirror *m; in mirror_flush() local
269 for (i = 0, m = ms->mirror; i < ms->nr_mirrors; i++, m++) { in mirror_flush()
270 io[i].bdev = m->dev->bdev; in mirror_flush()
300 int m, bit = 0; in recovery_complete() local
315 for (m = 0; m < ms->nr_mirrors; m++) { in recovery_complete()
316 if (&ms->mirror[m] == get_default_mirror(ms)) in recovery_complete()
319 fail_mirror(ms->mirror + m, in recovery_complete()
333 struct mirror *m; in recover() local
339 m = get_default_mirror(ms); in recover()
340 from.bdev = m->dev->bdev; in recover()
341 from.sector = m->offset + dm_rh_region_to_sector(ms->rh, key); in recover()
358 m = ms->mirror + i; in recover()
359 dest->bdev = m->dev->bdev; in recover()
360 dest->sector = m->offset + dm_rh_region_to_sector(ms->rh, key); in recover()
377 unsigned int m; in reset_ms_flags() local
380 for (m = 0; m < ms->nr_mirrors; m++) { in reset_ms_flags()
381 atomic_set(&(ms->mirror[m].error_count), 0); in reset_ms_flags()
382 ms->mirror[m].error_type = 0; in reset_ms_flags()
423 struct mirror *m = get_default_mirror(ms); in choose_mirror() local
426 if (likely(!atomic_read(&m->error_count))) in choose_mirror()
427 return m; in choose_mirror()
429 if (m-- == ms->mirror) in choose_mirror()
430 m += ms->nr_mirrors; in choose_mirror()
431 } while (m != get_default_mirror(ms)); in choose_mirror()
436 static int default_ok(struct mirror *m) in default_ok() argument
438 struct mirror *default_mirror = get_default_mirror(m->ms); in default_ok()
457 static sector_t map_sector(struct mirror *m, struct bio *bio) in map_sector() argument
461 return m->offset + dm_target_offset(m->ms->ti, bio->bi_iter.bi_sector); in map_sector()
464 static void map_bio(struct mirror *m, struct bio *bio) in map_bio() argument
466 bio->bi_bdev = m->dev->bdev; in map_bio()
467 bio->bi_iter.bi_sector = map_sector(m, bio); in map_bio()
470 static void map_region(struct dm_io_region *io, struct mirror *m, in map_region() argument
473 io->bdev = m->dev->bdev; in map_region()
474 io->sector = map_sector(m, bio); in map_region()
514 struct mirror *m; in read_callback() local
516 m = bio_get_m(bio); in read_callback()
524 fail_mirror(m, DM_RAID1_READ_ERROR); in read_callback()
526 if (likely(default_ok(m)) || mirror_available(m->ms, bio)) { in read_callback()
529 m->dev->name); in read_callback()
530 queue_bio(m->ms, bio, bio_rw(bio)); in read_callback()
535 m->dev->name); in read_callback()
540 static void read_async_bio(struct mirror *m, struct bio *bio) in read_async_bio() argument
549 .client = m->ms->io_client, in read_async_bio()
552 map_region(&io, m, bio); in read_async_bio()
553 bio_set_m(bio, m); in read_async_bio()
568 struct mirror *m; in do_reads() local
572 m = get_default_mirror(ms); in do_reads()
578 m = choose_mirror(ms, bio->bi_iter.bi_sector); in do_reads()
579 else if (m && atomic_read(&m->error_count)) in do_reads()
580 m = NULL; in do_reads()
582 if (likely(m)) in do_reads()
583 read_async_bio(m, bio); in do_reads()
655 struct mirror *m; in do_write() local
671 for (i = 0, m = ms->mirror; i < ms->nr_mirrors; i++, m++) in do_write()
672 map_region(dest++, m, bio); in do_write()
933 unsigned int m) in free_context() argument
935 while (m--) in free_context()
936 dm_put_device(ti, ms->mirror[m].dev); in free_context()
1072 unsigned int nr_mirrors, m, args_used; in mirror_ctr() local
1106 for (m = 0; m < nr_mirrors; m++) { in mirror_ctr()
1107 r = get_mirror(ms, ti, m, argv); in mirror_ctr()
1109 free_context(ms, ti, m); in mirror_ctr()
1194 struct mirror *m; in mirror_map() local
1228 m = choose_mirror(ms, bio->bi_iter.bi_sector); in mirror_map()
1229 if (unlikely(!m)) in mirror_map()
1233 bio_record->m = m; in mirror_map()
1235 map_bio(m, bio); in mirror_map()
1244 struct mirror *m = NULL; in mirror_end_io() local
1275 m = bio_record->m; in mirror_end_io()
1278 m->dev->name); in mirror_end_io()
1280 fail_mirror(m, DM_RAID1_READ_ERROR); in mirror_end_io()
1286 if (default_ok(m) || mirror_available(ms, bio)) { in mirror_end_io()
1385 static char device_status_char(struct mirror *m) in device_status_char() argument
1387 if (!atomic_read(&(m->error_count))) in device_status_char()
1390 return (test_bit(DM_RAID1_FLUSH_ERROR, &(m->error_type))) ? 'F' : in device_status_char()
1391 (test_bit(DM_RAID1_WRITE_ERROR, &(m->error_type))) ? 'D' : in device_status_char()
1392 (test_bit(DM_RAID1_SYNC_ERROR, &(m->error_type))) ? 'S' : in device_status_char()
1393 (test_bit(DM_RAID1_READ_ERROR, &(m->error_type))) ? 'R' : 'U'; in device_status_char()
1400 unsigned int m, sz = 0; in mirror_status() local
1409 for (m = 0; m < ms->nr_mirrors; m++) { in mirror_status()
1410 DMEMIT("%s ", ms->mirror[m].dev->name); in mirror_status()
1411 buffer[m] = device_status_char(&(ms->mirror[m])); in mirror_status()
1413 buffer[m] = '\0'; in mirror_status()
1427 for (m = 0; m < ms->nr_mirrors; m++) in mirror_status()
1428 DMEMIT(" %s %llu", ms->mirror[m].dev->name, in mirror_status()
1429 (unsigned long long)ms->mirror[m].offset); in mirror_status()