Lines Matching refs:ti
70 struct dm_target *ti; member
159 return dm_table_device_name(clone->ti->table); in clone_device_name()
190 dm_table_event(clone->ti->table); in __set_clone_mode()
814 tail_size = clone->ti->len & (region_size - 1); in hydration_copy()
1168 dm_table_event(clone->ti->table); in commit_metadata()
1318 static int clone_map(struct dm_target *ti, struct bio *bio) in clone_map() argument
1320 struct clone *clone = ti->private; in clone_map()
1340 bio->bi_iter.bi_sector = dm_target_offset(ti, bio->bi_iter.bi_sector); in clone_map()
1377 static int clone_endio(struct dm_target *ti, struct bio *bio, blk_status_t *error) in clone_endio() argument
1379 struct clone *clone = ti->private; in clone_endio()
1426 static void clone_status(struct dm_target *ti, status_type_t type, in clone_status() argument
1436 struct clone *clone = ti->private; in clone_status()
1446 if (!(status_flags & DM_STATUS_NOFLUSH_FLAG) && !dm_suspended(ti)) in clone_status()
1546 struct dm_target *ti = clone->ti; in parse_feature_args() local
1558 r = dm_read_arg_group(&args, as, &argc, &ti->error); in parse_feature_args()
1571 ti->error = "Invalid feature argument"; in parse_feature_args()
1585 struct dm_target *ti = clone->ti; in parse_core_args() local
1601 r = dm_read_arg_group(&args, as, &argc, &ti->error); in parse_core_args()
1606 ti->error = "Number of core arguments must be even"; in parse_core_args()
1616 ti->error = "Invalid value for argument `hydration_threshold'"; in parse_core_args()
1622 ti->error = "Invalid value for argument `hydration_batch_size'"; in parse_core_args()
1627 ti->error = "Invalid core argument"; in parse_core_args()
1687 r = dm_get_device(clone->ti, dm_shift_arg(as), FMODE_READ | FMODE_WRITE, in parse_metadata_dev()
1707 r = dm_get_device(clone->ti, dm_shift_arg(as), FMODE_READ | FMODE_WRITE, in parse_dest_dev()
1715 if (dest_dev_size < clone->ti->len) { in parse_dest_dev()
1716 dm_put_device(clone->ti, clone->dest_dev); in parse_dest_dev()
1729 r = dm_get_device(clone->ti, dm_shift_arg(as), FMODE_READ, in parse_source_dev()
1737 if (source_dev_size < clone->ti->len) { in parse_source_dev()
1738 dm_put_device(clone->ti, clone->source_dev); in parse_source_dev()
1775 static int clone_ctr(struct dm_target *ti, unsigned int argc, char **argv) in clone_ctr() argument
1783 ti->error = "Invalid number of arguments"; in clone_ctr()
1792 ti->error = "Failed to allocate clone structure"; in clone_ctr()
1796 clone->ti = ti; in clone_ctr()
1803 r = parse_metadata_dev(clone, &as, &ti->error); in clone_ctr()
1807 r = parse_dest_dev(clone, &as, &ti->error); in clone_ctr()
1811 r = parse_source_dev(clone, &as, &ti->error); in clone_ctr()
1815 r = parse_region_size(clone, &as, &ti->error); in clone_ctr()
1820 nr_regions = dm_sector_div_up(ti->len, clone->region_size); in clone_ctr()
1824 ti->error = "Too many regions. Consider increasing the region size"; in clone_ctr()
1831 r = validate_nr_regions(clone->nr_regions, &ti->error); in clone_ctr()
1835 r = dm_set_target_max_io_len(ti, clone->region_size); in clone_ctr()
1837 ti->error = "Failed to set max io len"; in clone_ctr()
1850 clone->cmd = dm_clone_metadata_open(clone->metadata_dev->bdev, ti->len, in clone_ctr()
1853 ti->error = "Failed to load metadata"; in clone_ctr()
1861 ti->error = "Unable to get write access to metadata, please check/repair metadata"; in clone_ctr()
1871 ti->error = "Failed to allocate hydration hash table"; in clone_ctr()
1887 ti->error = "Failed to allocate workqueue"; in clone_ctr()
1904 ti->error = "Failed to create dm_clone_region_hydration memory pool"; in clone_ctr()
1909 r = copy_ctr_args(clone, argc - 3, (const char **)argv + 3, &ti->error); in clone_ctr()
1916 ti->num_flush_bios = 1; in clone_ctr()
1917 ti->flush_supported = true; in clone_ctr()
1920 ti->discards_supported = true; in clone_ctr()
1921 ti->num_discard_bios = 1; in clone_ctr()
1923 ti->private = clone; in clone_ctr()
1938 dm_put_device(ti, clone->source_dev); in clone_ctr()
1940 dm_put_device(ti, clone->dest_dev); in clone_ctr()
1942 dm_put_device(ti, clone->metadata_dev); in clone_ctr()
1949 static void clone_dtr(struct dm_target *ti) in clone_dtr() argument
1952 struct clone *clone = ti->private; in clone_dtr()
1966 dm_put_device(ti, clone->source_dev); in clone_dtr()
1967 dm_put_device(ti, clone->dest_dev); in clone_dtr()
1968 dm_put_device(ti, clone->metadata_dev); in clone_dtr()
1975 static void clone_postsuspend(struct dm_target *ti) in clone_postsuspend() argument
1977 struct clone *clone = ti->private; in clone_postsuspend()
2013 static void clone_resume(struct dm_target *ti) in clone_resume() argument
2015 struct clone *clone = ti->private; in clone_resume()
2079 static void clone_io_hints(struct dm_target *ti, struct queue_limits *limits) in clone_io_hints() argument
2081 struct clone *clone = ti->private; in clone_io_hints()
2098 static int clone_iterate_devices(struct dm_target *ti, in clone_iterate_devices() argument
2102 struct clone *clone = ti->private; in clone_iterate_devices()
2106 ret = fn(ti, source_dev, 0, ti->len, data); in clone_iterate_devices()
2108 ret = fn(ti, dest_dev, 0, ti->len, data); in clone_iterate_devices()
2143 static int clone_message(struct dm_target *ti, unsigned int argc, char **argv, in clone_message() argument
2146 struct clone *clone = ti->private; in clone_message()