Lines Matching refs:ti

476 	struct dm_target *ti;	/* Only set if a pool target is bound */
517 struct dm_target *ti;
1034 dm_table_event(pool->ti->table);
1341 static int thin_bio_map(struct dm_target *ti, struct bio *bio,
1345 struct thin_c *tc = ti->private;
1431 static int bind_control_target(struct pool *pool, struct dm_target *ti)
1433 struct pool_c *pt = ti->private;
1435 pool->ti = ti;
1442 static void unbind_control_target(struct pool *pool, struct dm_target *ti)
1444 if (pool->ti == ti)
1445 pool->ti = NULL;
1617 static void pool_dtr(struct dm_target *ti)
1619 struct pool_c *pt = ti->private;
1623 unbind_control_target(pt->pool, ti);
1625 dm_put_device(ti, pt->metadata_dev);
1626 dm_put_device(ti, pt->data_dev);
1637 struct dm_target *ti)
1653 r = dm_read_arg_group(_args, as, &argc, &ti->error);
1666 ti->error = "Unrecognised pool feature requested";
1682 static int pool_ctr(struct dm_target *ti, unsigned argc, char **argv)
1701 ti->error = "Invalid argument count";
1708 r = dm_get_device(ti, argv[0], FMODE_READ | FMODE_WRITE, &metadata_dev);
1710 ti->error = "Error opening metadata block device";
1716 ti->error = "Metadata device is too large";
1721 r = dm_get_device(ti, argv[1], FMODE_READ | FMODE_WRITE, &data_dev);
1723 ti->error = "Error getting data device";
1731 ti->error = "Invalid block size";
1737 ti->error = "Invalid low water mark";
1749 r = parse_pool_features(&as, &pf, ti);
1759 pool = __pool_find(dm_table_get_md(ti->table), metadata_dev->bdev,
1760 block_size, &ti->error);
1767 pt->ti = ti;
1772 ti->num_flush_requests = 1;
1773 ti->num_discard_requests = 0;
1774 ti->private = pt;
1777 dm_table_add_target_callbacks(ti->table, &pt->callbacks);
1786 dm_put_device(ti, data_dev);
1788 dm_put_device(ti, metadata_dev);
1795 static int pool_map(struct dm_target *ti, struct bio *bio,
1799 struct pool_c *pt = ti->private;
1804 * As this is a singleton target, ti->begin is always zero.
1825 static int pool_preresume(struct dm_target *ti)
1828 struct pool_c *pt = ti->private;
1835 r = bind_control_target(pool, ti);
1839 data_size = ti->len >> pool->block_shift;
1869 static void pool_resume(struct dm_target *ti)
1871 struct pool_c *pt = ti->private;
1884 static void pool_postsuspend(struct dm_target *ti)
1887 struct pool_c *pt = ti->private;
2031 static int pool_message(struct dm_target *ti, unsigned argc, char **argv)
2034 struct pool_c *pt = ti->private;
2067 static int pool_status(struct dm_target *ti, status_type_t type,
2080 struct pool_c *pt = ti->private;
2143 static int pool_iterate_devices(struct dm_target *ti,
2146 struct pool_c *pt = ti->private;
2148 return fn(ti, pt->data_dev, 0, ti->len, data);
2151 static int pool_merge(struct dm_target *ti, struct bvec_merge_data *bvm,
2154 struct pool_c *pt = ti->private;
2165 static void pool_io_hints(struct dm_target *ti, struct queue_limits *limits)
2167 struct pool_c *pt = ti->private;
2196 static void thin_dtr(struct dm_target *ti)
2198 struct thin_c *tc = ti->private;
2204 dm_put_device(ti, tc->pool_dev);
2218 static int thin_ctr(struct dm_target *ti, unsigned argc, char **argv)
2228 ti->error = "Invalid argument count";
2233 tc = ti->private = kzalloc(sizeof(*tc), GFP_KERNEL);
2235 ti->error = "Out of memory";
2240 r = dm_get_device(ti, argv[0], dm_table_get_mode(ti->table), &pool_dev);
2242 ti->error = "Error opening pool device";
2248 ti->error = "Invalid device id";
2255 ti->error = "Couldn't get pool mapped device";
2262 ti->error = "Couldn't find pool object";
2270 ti->error = "Couldn't open thin internal device";
2274 ti->split_io = tc->pool->sectors_per_block;
2275 ti->num_flush_requests = 1;
2276 ti->num_discard_requests = 0;
2277 ti->discards_supported = 0;
2290 dm_put_device(ti, tc->pool_dev);
2299 static int thin_map(struct dm_target *ti, struct bio *bio,
2302 bio->bi_sector -= ti->begin;
2304 return thin_bio_map(ti, bio, map_context);
2307 static void thin_postsuspend(struct dm_target *ti)
2309 if (dm_noflush_suspending(ti))
2310 requeue_io((struct thin_c *)ti->private);
2316 static int thin_status(struct dm_target *ti, status_type_t type,
2323 struct thin_c *tc = ti->private;
2357 static int thin_iterate_devices(struct dm_target *ti,
2361 struct thin_c *tc = ti->private;
2367 if (!tc->pool->ti)
2370 blocks = tc->pool->ti->len >> tc->pool->block_shift;
2372 return fn(ti, tc->pool_dev, 0, tc->pool->sectors_per_block * blocks, data);
2377 static void thin_io_hints(struct dm_target *ti, struct queue_limits *limits)
2379 struct thin_c *tc = ti->private;