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
162 struct multipath *m = ti->private; in free_pgpaths()
168 dm_put_device(ti, pgpath->path.dev); in free_pgpaths()
174 struct dm_target *ti) in free_priority_group() argument
183 free_pgpaths(&pg->pgpaths, ti); in free_priority_group()
187 static struct multipath *alloc_multipath(struct dm_target *ti) in alloc_multipath() argument
206 m->ti = ti; in alloc_multipath()
207 ti->private = m; in alloc_multipath()
219 free_priority_group(pg, m->ti); in free_multipath()
376 dm_noflush_suspending(m->ti))); in __must_push_back()
382 static int __multipath_map(struct dm_target *ti, struct request *clone, in __multipath_map() argument
386 struct multipath *m = (struct multipath *) ti->private; in __multipath_map()
454 static int multipath_map(struct dm_target *ti, struct request *clone, in multipath_map() argument
457 return __multipath_map(ti, clone, map_context, NULL, NULL); in multipath_map()
460 static int multipath_clone_and_map(struct dm_target *ti, struct request *rq, in multipath_clone_and_map() argument
464 return __multipath_map(ti, NULL, map_context, rq, clone); in multipath_clone_and_map()
490 dm_table_run_md_queue_async(m->ti->table); in queue_if_no_path()
504 dm_table_event(m->ti->table); in trigger_event()
518 struct dm_target *ti) in parse_path_selector() argument
530 ti->error = "unknown path selector type"; in parse_path_selector()
534 r = dm_read_arg_group(_args, as, &ps_argc, &ti->error); in parse_path_selector()
543 ti->error = "path selector constructor failed"; in parse_path_selector()
554 struct dm_target *ti) in parse_path() argument
558 struct multipath *m = ti->private; in parse_path()
564 ti->error = "no device given"; in parse_path()
572 r = dm_get_device(ti, dm_shift_arg(as), dm_table_get_mode(ti->table), in parse_path()
575 ti->error = "error getting device"; in parse_path()
617 ti->error = "error attaching hardware handler"; in parse_path()
618 dm_put_device(ti, p->path.dev); in parse_path()
625 ti->error = "unable to set hardware " in parse_path()
628 dm_put_device(ti, p->path.dev); in parse_path()
634 r = ps->type->add_path(ps, &p->path, as->argc, as->argv, &ti->error); in parse_path()
636 dm_put_device(ti, p->path.dev); in parse_path()
658 struct dm_target *ti = m->ti; in parse_priority_group() local
662 ti->error = "not enough priority group arguments"; in parse_priority_group()
668 ti->error = "couldn't allocate priority group"; in parse_priority_group()
673 r = parse_path_selector(as, pg, ti); in parse_priority_group()
680 r = dm_read_arg(_args, as, &pg->nr_pgpaths, &ti->error); in parse_priority_group()
684 r = dm_read_arg(_args + 1, as, &nr_selector_args, &ti->error); in parse_priority_group()
694 ti->error = "not enough path parameters"; in parse_priority_group()
702 pgpath = parse_path(&path_args, &pg->ps, ti); in parse_priority_group()
716 free_priority_group(pg, ti); in parse_priority_group()
724 struct dm_target *ti = m->ti; in parse_hw_handler() local
730 if (dm_read_arg_group(_args, as, &hw_argc, &ti->error)) in parse_hw_handler()
739 ti->error = "unknown hardware handler type"; in parse_hw_handler()
752 ti->error = "memory allocation failed"; in parse_hw_handler()
773 struct dm_target *ti = m->ti; in parse_features() local
782 r = dm_read_arg_group(_args, as, &argc, &ti->error); in parse_features()
805 r = dm_read_arg(_args + 1, as, &m->pg_init_retries, &ti->error); in parse_features()
812 r = dm_read_arg(_args + 2, as, &m->pg_init_delay_msecs, &ti->error); in parse_features()
817 ti->error = "Unrecognised multipath feature request"; in parse_features()
824 static int multipath_ctr(struct dm_target *ti, unsigned int argc, in multipath_ctr() argument
842 m = alloc_multipath(ti); in multipath_ctr()
844 ti->error = "can't allocate multipath"; in multipath_ctr()
856 r = dm_read_arg(_args, &as, &m->nr_priority_groups, &ti->error); in multipath_ctr()
860 r = dm_read_arg(_args + 1, &as, &next_pg_num, &ti->error); in multipath_ctr()
866 ti->error = "invalid initial priority group"; in multipath_ctr()
890 ti->error = "priority group count mismatch"; in multipath_ctr()
895 ti->num_flush_bios = 1; in multipath_ctr()
896 ti->num_discard_bios = 1; in multipath_ctr()
897 ti->num_write_same_bios = 1; in multipath_ctr()
948 static void multipath_dtr(struct dm_target *ti) in multipath_dtr() argument
950 struct multipath *m = ti->private; in multipath_dtr()
980 dm_path_uevent(DM_UEVENT_PATH_FAILED, m->ti, in fail_path()
1026 dm_path_uevent(DM_UEVENT_PATH_REINSTATED, m->ti, in reinstate_path()
1034 dm_table_run_md_queue_async(m->ti->table); in reinstate_path()
1305 static int multipath_end_io(struct dm_target *ti, struct request *clone, in multipath_end_io() argument
1308 struct multipath *m = ti->private; in multipath_end_io()
1334 static void multipath_presuspend(struct dm_target *ti) in multipath_presuspend() argument
1336 struct multipath *m = (struct multipath *) ti->private; in multipath_presuspend()
1341 static void multipath_postsuspend(struct dm_target *ti) in multipath_postsuspend() argument
1343 struct multipath *m = ti->private; in multipath_postsuspend()
1353 static void multipath_resume(struct dm_target *ti) in multipath_resume() argument
1355 struct multipath *m = (struct multipath *) ti->private; in multipath_resume()
1379 static void multipath_status(struct dm_target *ti, status_type_t type, in multipath_status() argument
1384 struct multipath *m = (struct multipath *) ti->private; in multipath_status()
1488 static int multipath_message(struct dm_target *ti, unsigned argc, char **argv) in multipath_message() argument
1492 struct multipath *m = (struct multipath *) ti->private; in multipath_message()
1497 if (dm_suspended(ti)) { in multipath_message()
1535 r = dm_get_device(ti, argv[1], dm_table_get_mode(ti->table), &dev); in multipath_message()
1544 dm_put_device(ti, dev); in multipath_message()
1551 static int multipath_ioctl(struct dm_target *ti, unsigned int cmd, in multipath_ioctl() argument
1554 struct multipath *m = ti->private; in multipath_ioctl()
1587 if (!bdev || ti->len != i_size_read(bdev->bd_inode) >> SECTOR_SHIFT) { in multipath_ioctl()
1602 dm_table_run_md_queue_async(m->ti->table); in multipath_ioctl()
1608 static int multipath_iterate_devices(struct dm_target *ti, in multipath_iterate_devices() argument
1611 struct multipath *m = ti->private; in multipath_iterate_devices()
1618 ret = fn(ti, p->path.dev, ti->begin, ti->len, data); in multipath_iterate_devices()
1643 static int multipath_busy(struct dm_target *ti) in multipath_busy() argument
1646 struct multipath *m = ti->private; in multipath_busy()