Lines Matching refs:ti
31 #define dm_target_is_snapshot_merge(ti) \ argument
32 ((ti)->type->name == dm_snapshot_merge_target_name)
55 struct dm_target *ti; member
307 struct dm_target *ti; member
438 if (dm_target_is_snapshot_merge(s->ti) && snap_merge) in __find_snapshots_sharing_cow()
473 snap->ti->error = "Snapshot cow pairing for exception " in __validate_exception_handover()
488 if (!dm_target_is_snapshot_merge(snap->ti)) in __validate_exception_handover()
495 snap->ti->error = "A snapshot is already merging."; in __validate_exception_handover()
501 snap->ti->error = "Snapshot exception store does not " in __validate_exception_handover()
1103 static int snapshot_ctr(struct dm_target *ti, unsigned int argc, char **argv) in snapshot_ctr() argument
1114 ti->error = "requires exactly 4 arguments"; in snapshot_ctr()
1119 if (dm_target_is_snapshot_merge(ti)) { in snapshot_ctr()
1126 ti->error = "Cannot allocate private snapshot structure"; in snapshot_ctr()
1135 r = dm_get_device(ti, origin_path, origin_mode, &s->origin); in snapshot_ctr()
1137 ti->error = "Cannot get origin device"; in snapshot_ctr()
1148 ti->error = "COW device cannot be the same as origin device"; in snapshot_ctr()
1153 r = dm_get_device(ti, cow_path, dm_table_get_mode(ti->table), &s->cow); in snapshot_ctr()
1155 ti->error = "Cannot get COW device"; in snapshot_ctr()
1159 r = dm_exception_store_create(ti, argc, argv, s, &args_used, &s->store); in snapshot_ctr()
1161 ti->error = "Couldn't create exception store"; in snapshot_ctr()
1169 s->ti = ti; in snapshot_ctr()
1188 ti->error = "Unable to allocate hash table space"; in snapshot_ctr()
1196 ti->error = "Could not create kcopyd client"; in snapshot_ctr()
1202 ti->error = "Could not allocate mempool for pending exceptions"; in snapshot_ctr()
1212 ti->private = s; in snapshot_ctr()
1213 ti->num_flush_bios = num_flush_bios; in snapshot_ctr()
1214 ti->per_bio_data_size = sizeof(struct dm_snap_tracked_chunk); in snapshot_ctr()
1220 ti->error = "Snapshot origin struct allocation failed"; in snapshot_ctr()
1241 ti->error = "Failed to read snapshot metadata"; in snapshot_ctr()
1249 ti->error = "Chunk size not set"; in snapshot_ctr()
1253 r = dm_set_target_max_io_len(ti, s->store->chunk_size); in snapshot_ctr()
1276 dm_put_device(ti, s->cow); in snapshot_ctr()
1279 dm_put_device(ti, s->origin); in snapshot_ctr()
1320 snap_dest->ti->max_io_len = snap_dest->store->chunk_size; in __handover_exceptions()
1330 static void snapshot_dtr(struct dm_target *ti) in snapshot_dtr() argument
1335 struct dm_snapshot *s = ti->private; in snapshot_dtr()
1349 if (dm_target_is_snapshot_merge(ti)) in snapshot_dtr()
1375 dm_put_device(ti, s->cow); in snapshot_dtr()
1377 dm_put_device(ti, s->origin); in snapshot_dtr()
1447 dm_table_event(s->ti->table); in __invalidate_snapshot()
1677 static int snapshot_map(struct dm_target *ti, struct bio *bio) in snapshot_map() argument
1680 struct dm_snapshot *s = ti->private; in snapshot_map()
1797 static int snapshot_merge_map(struct dm_target *ti, struct bio *bio) in snapshot_merge_map() argument
1800 struct dm_snapshot *s = ti->private; in snapshot_merge_map()
1857 static int snapshot_end_io(struct dm_target *ti, struct bio *bio, int error) in snapshot_end_io() argument
1859 struct dm_snapshot *s = ti->private; in snapshot_end_io()
1867 static void snapshot_merge_presuspend(struct dm_target *ti) in snapshot_merge_presuspend() argument
1869 struct dm_snapshot *s = ti->private; in snapshot_merge_presuspend()
1874 static int snapshot_preresume(struct dm_target *ti) in snapshot_preresume() argument
1877 struct dm_snapshot *s = ti->private; in snapshot_preresume()
1888 } else if (!dm_suspended(snap_src->ti)) { in snapshot_preresume()
1900 static void snapshot_resume(struct dm_target *ti) in snapshot_resume() argument
1902 struct dm_snapshot *s = ti->private; in snapshot_resume()
1912 origin_md = dm_table_get_md(o->ti->table); in snapshot_resume()
1916 origin_md = dm_table_get_md(snap_merging->ti->table); in snapshot_resume()
1918 if (origin_md == dm_table_get_md(ti->table)) in snapshot_resume()
1974 static void snapshot_merge_resume(struct dm_target *ti) in snapshot_merge_resume() argument
1976 struct dm_snapshot *s = ti->private; in snapshot_merge_resume()
1981 snapshot_resume(ti); in snapshot_merge_resume()
1986 ti->max_io_len = get_origin_minimum_chunksize(s->origin->bdev); in snapshot_merge_resume()
1991 static void snapshot_status(struct dm_target *ti, status_type_t type, in snapshot_status() argument
1995 struct dm_snapshot *snap = ti->private; in snapshot_status()
2042 static int snapshot_iterate_devices(struct dm_target *ti, in snapshot_iterate_devices() argument
2045 struct dm_snapshot *snap = ti->private; in snapshot_iterate_devices()
2048 r = fn(ti, snap->origin, 0, ti->len, data); in snapshot_iterate_devices()
2051 r = fn(ti, snap->cow, 0, get_dev_size(snap->cow->bdev), data); in snapshot_iterate_devices()
2088 if (dm_target_is_snapshot_merge(snap->ti)) in __origin_write()
2098 if (sector >= dm_table_get_size(snap->ti->table)) in __origin_write()
2224 for (n = 0; n < size; n += merging_snap->ti->max_io_len) in origin_write_extent()
2242 static int origin_ctr(struct dm_target *ti, unsigned int argc, char **argv) in origin_ctr() argument
2248 ti->error = "origin: incorrect number of arguments"; in origin_ctr()
2254 ti->error = "Cannot allocate private origin structure"; in origin_ctr()
2259 r = dm_get_device(ti, argv[0], dm_table_get_mode(ti->table), &o->dev); in origin_ctr()
2261 ti->error = "Cannot get target device"; in origin_ctr()
2265 o->ti = ti; in origin_ctr()
2266 ti->private = o; in origin_ctr()
2267 ti->num_flush_bios = 1; in origin_ctr()
2277 static void origin_dtr(struct dm_target *ti) in origin_dtr() argument
2279 struct dm_origin *o = ti->private; in origin_dtr()
2281 dm_put_device(ti, o->dev); in origin_dtr()
2285 static int origin_map(struct dm_target *ti, struct bio *bio) in origin_map() argument
2287 struct dm_origin *o = ti->private; in origin_map()
2312 static void origin_resume(struct dm_target *ti) in origin_resume() argument
2314 struct dm_origin *o = ti->private; in origin_resume()
2323 static void origin_postsuspend(struct dm_target *ti) in origin_postsuspend() argument
2325 struct dm_origin *o = ti->private; in origin_postsuspend()
2332 static void origin_status(struct dm_target *ti, status_type_t type, in origin_status() argument
2335 struct dm_origin *o = ti->private; in origin_status()
2348 static int origin_iterate_devices(struct dm_target *ti, in origin_iterate_devices() argument
2351 struct dm_origin *o = ti->private; in origin_iterate_devices()
2353 return fn(ti, o->dev, 0, ti->len, data); in origin_iterate_devices()