Lines Matching refs:ti
65 struct dm_target *ti; member
159 static void free_pgpaths(struct list_head *pgpaths, struct dm_target *ti) in free_pgpaths() argument
165 dm_put_device(ti, pgpath->path.dev); in free_pgpaths()
171 struct dm_target *ti) in free_priority_group() argument
180 free_pgpaths(&pg->pgpaths, ti); in free_priority_group()
184 static struct multipath *alloc_multipath(struct dm_target *ti) in alloc_multipath() argument
203 m->ti = ti; in alloc_multipath()
204 ti->private = m; in alloc_multipath()
216 free_priority_group(pg, m->ti); in free_multipath()
373 dm_noflush_suspending(m->ti))); in __must_push_back()
379 static int __multipath_map(struct dm_target *ti, struct request *clone, in __multipath_map() argument
383 struct multipath *m = (struct multipath *) ti->private; in __multipath_map()
451 static int multipath_map(struct dm_target *ti, struct request *clone, in multipath_map() argument
454 return __multipath_map(ti, clone, map_context, NULL, NULL); in multipath_map()
457 static int multipath_clone_and_map(struct dm_target *ti, struct request *rq, in multipath_clone_and_map() argument
461 return __multipath_map(ti, NULL, map_context, rq, clone); in multipath_clone_and_map()
487 dm_table_run_md_queue_async(m->ti->table); in queue_if_no_path()
501 dm_table_event(m->ti->table); in trigger_event()
515 struct dm_target *ti) in parse_path_selector() argument
527 ti->error = "unknown path selector type"; in parse_path_selector()
531 r = dm_read_arg_group(_args, as, &ps_argc, &ti->error); in parse_path_selector()
540 ti->error = "path selector constructor failed"; in parse_path_selector()
551 struct dm_target *ti) in parse_path() argument
555 struct multipath *m = ti->private; in parse_path()
561 ti->error = "no device given"; in parse_path()
569 r = dm_get_device(ti, dm_shift_arg(as), dm_table_get_mode(ti->table), in parse_path()
572 ti->error = "error getting device"; in parse_path()
609 ti->error = "error attaching hardware handler"; in parse_path()
610 dm_put_device(ti, p->path.dev); in parse_path()
617 ti->error = "unable to set hardware " in parse_path()
619 dm_put_device(ti, p->path.dev); in parse_path()
625 r = ps->type->add_path(ps, &p->path, as->argc, as->argv, &ti->error); in parse_path()
627 dm_put_device(ti, p->path.dev); in parse_path()
649 struct dm_target *ti = m->ti; in parse_priority_group() local
653 ti->error = "not enough priority group arguments"; in parse_priority_group()
659 ti->error = "couldn't allocate priority group"; in parse_priority_group()
664 r = parse_path_selector(as, pg, ti); in parse_priority_group()
671 r = dm_read_arg(_args, as, &pg->nr_pgpaths, &ti->error); in parse_priority_group()
675 r = dm_read_arg(_args + 1, as, &nr_selector_args, &ti->error); in parse_priority_group()
685 ti->error = "not enough path parameters"; in parse_priority_group()
693 pgpath = parse_path(&path_args, &pg->ps, ti); in parse_priority_group()
707 free_priority_group(pg, ti); in parse_priority_group()
715 struct dm_target *ti = m->ti; in parse_hw_handler() local
721 if (dm_read_arg_group(_args, as, &hw_argc, &ti->error)) in parse_hw_handler()
737 ti->error = "memory allocation failed"; in parse_hw_handler()
758 struct dm_target *ti = m->ti; in parse_features() local
767 r = dm_read_arg_group(_args, as, &argc, &ti->error); in parse_features()
790 r = dm_read_arg(_args + 1, as, &m->pg_init_retries, &ti->error); in parse_features()
797 r = dm_read_arg(_args + 2, as, &m->pg_init_delay_msecs, &ti->error); in parse_features()
802 ti->error = "Unrecognised multipath feature request"; in parse_features()
809 static int multipath_ctr(struct dm_target *ti, unsigned int argc, in multipath_ctr() argument
827 m = alloc_multipath(ti); in multipath_ctr()
829 ti->error = "can't allocate multipath"; in multipath_ctr()
841 r = dm_read_arg(_args, &as, &m->nr_priority_groups, &ti->error); in multipath_ctr()
845 r = dm_read_arg(_args + 1, &as, &next_pg_num, &ti->error); in multipath_ctr()
851 ti->error = "invalid initial priority group"; in multipath_ctr()
875 ti->error = "priority group count mismatch"; in multipath_ctr()
880 ti->num_flush_bios = 1; in multipath_ctr()
881 ti->num_discard_bios = 1; in multipath_ctr()
882 ti->num_write_same_bios = 1; in multipath_ctr()
933 static void multipath_dtr(struct dm_target *ti) in multipath_dtr() argument
935 struct multipath *m = ti->private; in multipath_dtr()
965 dm_path_uevent(DM_UEVENT_PATH_FAILED, m->ti, in fail_path()
1011 dm_path_uevent(DM_UEVENT_PATH_REINSTATED, m->ti, in reinstate_path()
1019 dm_table_run_md_queue_async(m->ti->table); in reinstate_path()
1290 static int multipath_end_io(struct dm_target *ti, struct request *clone, in multipath_end_io() argument
1293 struct multipath *m = ti->private; in multipath_end_io()
1319 static void multipath_presuspend(struct dm_target *ti) in multipath_presuspend() argument
1321 struct multipath *m = (struct multipath *) ti->private; in multipath_presuspend()
1326 static void multipath_postsuspend(struct dm_target *ti) in multipath_postsuspend() argument
1328 struct multipath *m = ti->private; in multipath_postsuspend()
1338 static void multipath_resume(struct dm_target *ti) in multipath_resume() argument
1340 struct multipath *m = (struct multipath *) ti->private; in multipath_resume()
1364 static void multipath_status(struct dm_target *ti, status_type_t type, in multipath_status() argument
1369 struct multipath *m = (struct multipath *) ti->private; in multipath_status()
1473 static int multipath_message(struct dm_target *ti, unsigned argc, char **argv) in multipath_message() argument
1477 struct multipath *m = (struct multipath *) ti->private; in multipath_message()
1482 if (dm_suspended(ti)) { in multipath_message()
1520 r = dm_get_device(ti, argv[1], dm_table_get_mode(ti->table), &dev); in multipath_message()
1529 dm_put_device(ti, dev); in multipath_message()
1536 static int multipath_prepare_ioctl(struct dm_target *ti, in multipath_prepare_ioctl() argument
1539 struct multipath *m = ti->private; in multipath_prepare_ioctl()
1576 dm_table_run_md_queue_async(m->ti->table); in multipath_prepare_ioctl()
1582 if (!r && ti->len != i_size_read((*bdev)->bd_inode) >> SECTOR_SHIFT) in multipath_prepare_ioctl()
1587 static int multipath_iterate_devices(struct dm_target *ti, in multipath_iterate_devices() argument
1590 struct multipath *m = ti->private; in multipath_iterate_devices()
1597 ret = fn(ti, p->path.dev, ti->begin, ti->len, data); in multipath_iterate_devices()
1622 static int multipath_busy(struct dm_target *ti) in multipath_busy() argument
1625 struct multipath *m = ti->private; in multipath_busy()