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
300 struct dm_target *ti; member
431 if (dm_target_is_snapshot_merge(s->ti) && snap_merge) in __find_snapshots_sharing_cow()
466 snap->ti->error = "Snapshot cow pairing for exception " in __validate_exception_handover()
481 if (!dm_target_is_snapshot_merge(snap->ti)) in __validate_exception_handover()
488 snap->ti->error = "A snapshot is already merging."; in __validate_exception_handover()
494 snap->ti->error = "Snapshot exception store does not " in __validate_exception_handover()
1096 static int snapshot_ctr(struct dm_target *ti, unsigned int argc, char **argv) in snapshot_ctr() argument
1106 ti->error = "requires exactly 4 arguments"; in snapshot_ctr()
1111 if (dm_target_is_snapshot_merge(ti)) { in snapshot_ctr()
1118 ti->error = "Cannot allocate private snapshot structure"; in snapshot_ctr()
1127 r = dm_get_device(ti, origin_path, origin_mode, &s->origin); in snapshot_ctr()
1129 ti->error = "Cannot get origin device"; in snapshot_ctr()
1137 r = dm_get_device(ti, cow_path, dm_table_get_mode(ti->table), &s->cow); in snapshot_ctr()
1139 ti->error = "Cannot get COW device"; in snapshot_ctr()
1143 r = dm_exception_store_create(ti, argc, argv, s, &args_used, &s->store); in snapshot_ctr()
1145 ti->error = "Couldn't create exception store"; in snapshot_ctr()
1153 s->ti = ti; in snapshot_ctr()
1171 ti->error = "Unable to allocate hash table space"; in snapshot_ctr()
1179 ti->error = "Could not create kcopyd client"; in snapshot_ctr()
1185 ti->error = "Could not allocate mempool for pending exceptions"; in snapshot_ctr()
1195 ti->private = s; in snapshot_ctr()
1196 ti->num_flush_bios = num_flush_bios; in snapshot_ctr()
1197 ti->per_bio_data_size = sizeof(struct dm_snap_tracked_chunk); in snapshot_ctr()
1203 ti->error = "Snapshot origin struct allocation failed"; in snapshot_ctr()
1224 ti->error = "Failed to read snapshot metadata"; in snapshot_ctr()
1232 ti->error = "Chunk size not set"; in snapshot_ctr()
1236 r = dm_set_target_max_io_len(ti, s->store->chunk_size); in snapshot_ctr()
1259 dm_put_device(ti, s->cow); in snapshot_ctr()
1262 dm_put_device(ti, s->origin); in snapshot_ctr()
1302 snap_dest->ti->max_io_len = snap_dest->store->chunk_size; in __handover_exceptions()
1311 static void snapshot_dtr(struct dm_target *ti) in snapshot_dtr() argument
1316 struct dm_snapshot *s = ti->private; in snapshot_dtr()
1330 if (dm_target_is_snapshot_merge(ti)) in snapshot_dtr()
1356 dm_put_device(ti, s->cow); in snapshot_dtr()
1358 dm_put_device(ti, s->origin); in snapshot_dtr()
1428 dm_table_event(s->ti->table); in __invalidate_snapshot()
1659 static int snapshot_map(struct dm_target *ti, struct bio *bio) in snapshot_map() argument
1662 struct dm_snapshot *s = ti->private; in snapshot_map()
1775 static int snapshot_merge_map(struct dm_target *ti, struct bio *bio) in snapshot_merge_map() argument
1778 struct dm_snapshot *s = ti->private; in snapshot_merge_map()
1835 static int snapshot_end_io(struct dm_target *ti, struct bio *bio, int error) in snapshot_end_io() argument
1837 struct dm_snapshot *s = ti->private; in snapshot_end_io()
1845 static void snapshot_merge_presuspend(struct dm_target *ti) in snapshot_merge_presuspend() argument
1847 struct dm_snapshot *s = ti->private; in snapshot_merge_presuspend()
1852 static int snapshot_preresume(struct dm_target *ti) in snapshot_preresume() argument
1855 struct dm_snapshot *s = ti->private; in snapshot_preresume()
1866 } else if (!dm_suspended(snap_src->ti)) { in snapshot_preresume()
1878 static void snapshot_resume(struct dm_target *ti) in snapshot_resume() argument
1880 struct dm_snapshot *s = ti->private; in snapshot_resume()
1890 origin_md = dm_table_get_md(o->ti->table); in snapshot_resume()
1894 origin_md = dm_table_get_md(snap_merging->ti->table); in snapshot_resume()
1896 if (origin_md == dm_table_get_md(ti->table)) in snapshot_resume()
1952 static void snapshot_merge_resume(struct dm_target *ti) in snapshot_merge_resume() argument
1954 struct dm_snapshot *s = ti->private; in snapshot_merge_resume()
1959 snapshot_resume(ti); in snapshot_merge_resume()
1964 ti->max_io_len = get_origin_minimum_chunksize(s->origin->bdev); in snapshot_merge_resume()
1969 static void snapshot_status(struct dm_target *ti, status_type_t type, in snapshot_status() argument
1973 struct dm_snapshot *snap = ti->private; in snapshot_status()
2018 static int snapshot_iterate_devices(struct dm_target *ti, in snapshot_iterate_devices() argument
2021 struct dm_snapshot *snap = ti->private; in snapshot_iterate_devices()
2024 r = fn(ti, snap->origin, 0, ti->len, data); in snapshot_iterate_devices()
2027 r = fn(ti, snap->cow, 0, get_dev_size(snap->cow->bdev), data); in snapshot_iterate_devices()
2064 if (dm_target_is_snapshot_merge(snap->ti)) in __origin_write()
2074 if (sector >= dm_table_get_size(snap->ti->table)) in __origin_write()
2200 for (n = 0; n < size; n += merging_snap->ti->max_io_len) in origin_write_extent()
2218 static int origin_ctr(struct dm_target *ti, unsigned int argc, char **argv) in origin_ctr() argument
2224 ti->error = "origin: incorrect number of arguments"; in origin_ctr()
2230 ti->error = "Cannot allocate private origin structure"; in origin_ctr()
2235 r = dm_get_device(ti, argv[0], dm_table_get_mode(ti->table), &o->dev); in origin_ctr()
2237 ti->error = "Cannot get target device"; in origin_ctr()
2241 o->ti = ti; in origin_ctr()
2242 ti->private = o; in origin_ctr()
2243 ti->num_flush_bios = 1; in origin_ctr()
2253 static void origin_dtr(struct dm_target *ti) in origin_dtr() argument
2255 struct dm_origin *o = ti->private; in origin_dtr()
2257 dm_put_device(ti, o->dev); in origin_dtr()
2261 static int origin_map(struct dm_target *ti, struct bio *bio) in origin_map() argument
2263 struct dm_origin *o = ti->private; in origin_map()
2288 static void origin_resume(struct dm_target *ti) in origin_resume() argument
2290 struct dm_origin *o = ti->private; in origin_resume()
2299 static void origin_postsuspend(struct dm_target *ti) in origin_postsuspend() argument
2301 struct dm_origin *o = ti->private; in origin_postsuspend()
2308 static void origin_status(struct dm_target *ti, status_type_t type, in origin_status() argument
2311 struct dm_origin *o = ti->private; in origin_status()
2324 static int origin_merge(struct dm_target *ti, struct bvec_merge_data *bvm, in origin_merge() argument
2327 struct dm_origin *o = ti->private; in origin_merge()
2338 static int origin_iterate_devices(struct dm_target *ti, in origin_iterate_devices() argument
2341 struct dm_origin *o = ti->private; in origin_iterate_devices()
2343 return fn(ti, o->dev, 0, ti->len, data); in origin_iterate_devices()