Lines Matching refs:ti
20 static void ebs_dtr(struct dm_target *ti);
247 static int ebs_ctr(struct dm_target *ti, unsigned int argc, char **argv) in ebs_ctr() argument
256 ti->error = "Invalid argument count"; in ebs_ctr()
260 ec = ti->private = kzalloc(sizeof(*ec), GFP_KERNEL); in ebs_ctr()
262 ti->error = "Cannot allocate ebs context"; in ebs_ctr()
269 (sector_t)tmp >= ti->len) { in ebs_ctr()
270 ti->error = "Invalid device offset sector"; in ebs_ctr()
278 ti->error = "Invalid emulated block size"; in ebs_ctr()
285 ti->error = "Invalid underlying block size"; in ebs_ctr()
293 r = dm_get_device(ti, argv[0], dm_table_get_mode(ti->table), &ec->dev); in ebs_ctr()
295 ti->error = "Device lookup failed"; in ebs_ctr()
304 ti->error = "Invalid retrieved underlying block size"; in ebs_ctr()
313 ti->error = "Device offset must be multiple of underlying block size"; in ebs_ctr()
320 ti->error = "Cannot create dm bufio client"; in ebs_ctr()
328 ti->error = "Cannot create dm-" DM_MSG_PREFIX " workqueue"; in ebs_ctr()
338 ti->num_flush_bios = 1; in ebs_ctr()
339 ti->num_discard_bios = 1; in ebs_ctr()
340 ti->num_secure_erase_bios = 0; in ebs_ctr()
341 ti->num_write_zeroes_bios = 0; in ebs_ctr()
344 ebs_dtr(ti); in ebs_ctr()
348 static void ebs_dtr(struct dm_target *ti) in ebs_dtr() argument
350 struct ebs_c *ec = ti->private; in ebs_dtr()
357 dm_put_device(ti, ec->dev); in ebs_dtr()
361 static int ebs_map(struct dm_target *ti, struct bio *bio) in ebs_map() argument
363 struct ebs_c *ec = ti->private; in ebs_map()
366 bio->bi_iter.bi_sector = ec->start + dm_target_offset(ti, bio->bi_iter.bi_sector); in ebs_map()
393 static void ebs_postsuspend(struct dm_target *ti) in ebs_postsuspend() argument
395 struct ebs_c *ec = ti->private; in ebs_postsuspend()
399 static void ebs_status(struct dm_target *ti, status_type_t type, in ebs_status() argument
402 struct ebs_c *ec = ti->private; in ebs_status()
418 static int ebs_prepare_ioctl(struct dm_target *ti, struct block_device **bdev, in ebs_prepare_ioctl() argument
421 struct ebs_c *ec = ti->private; in ebs_prepare_ioctl()
428 return !!(ec->start || ti->len != bdev_nr_sectors(dev->bdev)); in ebs_prepare_ioctl()
431 static void ebs_io_hints(struct dm_target *ti, struct queue_limits *limits) in ebs_io_hints() argument
433 struct ebs_c *ec = ti->private; in ebs_io_hints()
441 static int ebs_iterate_devices(struct dm_target *ti, in ebs_iterate_devices() argument
444 struct ebs_c *ec = ti->private; in ebs_iterate_devices()
446 return fn(ti, ec->dev, ec->start, ti->len, data); in ebs_iterate_devices()