Lines Matching full:ti
30 static int linear_ctr(struct dm_target *ti, unsigned int argc, char **argv)
38 ti->error = "Invalid argument count";
44 ti->error = "Cannot allocate linear context";
50 ti->error = "Invalid device sector";
55 ret = dm_get_device(ti, argv[0], dm_table_get_mode(ti->table), &lc->dev);
57 ti->error = "Device lookup failed";
61 ti->num_flush_bios = 1;
62 ti->num_discard_bios = 1;
63 ti->num_secure_erase_bios = 1;
64 ti->num_write_zeroes_bios = 1;
65 ti->flush_bypasses_map = true;
66 ti->private = lc;
74 static void linear_dtr(struct dm_target *ti)
76 struct linear_c *lc = ti->private;
78 dm_put_device(ti, lc->dev);
82 static sector_t linear_map_sector(struct dm_target *ti, sector_t bi_sector)
84 struct linear_c *lc = ti->private;
86 return lc->start + dm_target_offset(ti, bi_sector);
89 int linear_map(struct dm_target *ti, struct bio *bio)
91 struct linear_c *lc = ti->private;
94 bio->bi_iter.bi_sector = linear_map_sector(ti, bio->bi_iter.bi_sector);
99 static void linear_status(struct dm_target *ti, status_type_t type,
102 struct linear_c *lc = ti->private;
115 DMEMIT_TARGET_NAME_VERSION(ti->type);
122 static int linear_prepare_ioctl(struct dm_target *ti, struct block_device **bdev)
124 struct linear_c *lc = ti->private;
132 if (lc->start || ti->len != bdev_nr_sectors(dev->bdev))
138 static int linear_report_zones(struct dm_target *ti,
141 struct linear_c *lc = ti->private;
144 linear_map_sector(ti, args->next_sector),
151 static int linear_iterate_devices(struct dm_target *ti,
154 struct linear_c *lc = ti->private;
156 return fn(ti, lc->dev, lc->start, ti->len, data);
160 static struct dax_device *linear_dax_pgoff(struct dm_target *ti, pgoff_t *pgoff)
162 struct linear_c *lc = ti->private;
163 sector_t sector = linear_map_sector(ti, *pgoff << PAGE_SECTORS_SHIFT);
169 static long linear_dax_direct_access(struct dm_target *ti, pgoff_t pgoff,
173 struct dax_device *dax_dev = linear_dax_pgoff(ti, &pgoff);
178 static int linear_dax_zero_page_range(struct dm_target *ti, pgoff_t pgoff,
181 struct dax_device *dax_dev = linear_dax_pgoff(ti, &pgoff);
186 static size_t linear_dax_recovery_write(struct dm_target *ti, pgoff_t pgoff,
189 struct dax_device *dax_dev = linear_dax_pgoff(ti, &pgoff);