Lines Matching refs:dm_snapshot
54 struct dm_snapshot { struct
177 struct dm_dev *dm_snap_origin(struct dm_snapshot *s) in dm_snap_origin()
183 struct dm_dev *dm_snap_cow(struct dm_snapshot *s) in dm_snap_cow()
215 struct dm_snapshot *snap;
264 static void track_chunk(struct dm_snapshot *s, struct bio *bio, chunk_t chunk) in track_chunk()
276 static void stop_tracking_chunk(struct dm_snapshot *s, struct bio *bio) in stop_tracking_chunk()
286 static int __chunk_is_tracked(struct dm_snapshot *s, chunk_t chunk) in __chunk_is_tracked()
310 static void __check_for_conflicting_io(struct dm_snapshot *s, chunk_t chunk) in __check_for_conflicting_io()
453 static int __find_snapshots_sharing_cow(struct dm_snapshot *snap, in __find_snapshots_sharing_cow()
454 struct dm_snapshot **snap_src, in __find_snapshots_sharing_cow()
455 struct dm_snapshot **snap_dest, in __find_snapshots_sharing_cow()
456 struct dm_snapshot **snap_merge) in __find_snapshots_sharing_cow()
458 struct dm_snapshot *s; in __find_snapshots_sharing_cow()
494 static int __validate_exception_handover(struct dm_snapshot *snap) in __validate_exception_handover()
496 struct dm_snapshot *snap_src = NULL, *snap_dest = NULL; in __validate_exception_handover()
497 struct dm_snapshot *snap_merge = NULL; in __validate_exception_handover()
537 static void __insert_snapshot(struct origin *o, struct dm_snapshot *s) in __insert_snapshot()
539 struct dm_snapshot *l; in __insert_snapshot()
556 static int register_snapshot(struct dm_snapshot *snap) in register_snapshot()
599 static void reregister_snapshot(struct dm_snapshot *s) in reregister_snapshot()
611 static void unregister_snapshot(struct dm_snapshot *s) in unregister_snapshot()
640 static void dm_exception_table_lock_init(struct dm_snapshot *s, chunk_t chunk, in dm_exception_table_lock_init()
749 static struct dm_snap_pending_exception *alloc_pending_exception(struct dm_snapshot *s) in alloc_pending_exception()
762 struct dm_snapshot *s = pe->snap; in free_pending_exception()
829 struct dm_snapshot *s = context; in dm_add_exception()
852 struct dm_snapshot *snap; in __minimum_chunk_size()
879 static int init_hash_tables(struct dm_snapshot *s) in init_hash_tables()
916 static void merge_shutdown(struct dm_snapshot *s) in merge_shutdown()
923 static struct bio *__release_queued_bios_after_merge(struct dm_snapshot *s) in __release_queued_bios_after_merge()
934 static int __remove_single_exception_chunk(struct dm_snapshot *s, in __remove_single_exception_chunk()
983 static int remove_single_exception_chunk(struct dm_snapshot *s) in remove_single_exception_chunk()
1011 static int origin_write_extent(struct dm_snapshot *merging_snap,
1037 static void snapshot_merge_next_chunks(struct dm_snapshot *s) in snapshot_merge_next_chunks()
1125 struct dm_snapshot *s = context; in merge_callback()
1164 static void start_merge(struct dm_snapshot *s) in start_merge()
1173 static void stop_merge(struct dm_snapshot *s) in stop_merge()
1180 static int parse_snapshot_features(struct dm_arg_set *as, struct dm_snapshot *s, in parse_snapshot_features()
1236 struct dm_snapshot *s; in snapshot_ctr()
1421 static void __free_exceptions(struct dm_snapshot *s) in __free_exceptions()
1430 static void __handover_exceptions(struct dm_snapshot *snap_src, in __handover_exceptions()
1431 struct dm_snapshot *snap_dest) in __handover_exceptions()
1468 struct dm_snapshot *s = ti->private; in snapshot_dtr()
1469 struct dm_snapshot *snap_src = NULL, *snap_dest = NULL; in snapshot_dtr()
1517 static void account_start_copy(struct dm_snapshot *s) in account_start_copy()
1524 static void account_end_copy(struct dm_snapshot *s) in account_end_copy()
1535 static bool wait_for_in_progress(struct dm_snapshot *s, bool unlock_origins) in wait_for_in_progress()
1583 static void retry_origin_bios(struct dm_snapshot *s, struct bio *bio) in retry_origin_bios()
1613 static void __invalidate_snapshot(struct dm_snapshot *s, int err) in __invalidate_snapshot()
1631 static void invalidate_snapshot(struct dm_snapshot *s, int err) in invalidate_snapshot()
1642 struct dm_snapshot *s = pe->snap; in pending_complete()
1728 struct dm_snapshot *s = pe->snap; in complete_exception()
1742 struct dm_snapshot *s = pe->snap; in copy_callback()
1791 struct dm_snapshot *s = pe->snap; in start_copy()
1821 struct dm_snapshot *s = pe->snap; in start_full_bio()
1838 __lookup_pending_exception(struct dm_snapshot *s, chunk_t chunk) in __lookup_pending_exception()
1855 __insert_pending_exception(struct dm_snapshot *s, in __insert_pending_exception()
1888 __find_pending_exception(struct dm_snapshot *s, in __find_pending_exception()
1902 static void remap_exception(struct dm_snapshot *s, struct dm_exception *e, in remap_exception()
1915 struct dm_snapshot *s = bio->bi_private; in zero_callback()
1922 static void zero_exception(struct dm_snapshot *s, struct dm_exception *e, in zero_exception()
1937 static bool io_overlaps_chunk(struct dm_snapshot *s, struct bio *bio) in io_overlaps_chunk()
1946 struct dm_snapshot *s = ti->private; in snapshot_map()
2114 struct dm_snapshot *s = ti->private; in snapshot_merge_map()
2180 struct dm_snapshot *s = ti->private; in snapshot_end_io()
2190 struct dm_snapshot *s = ti->private; in snapshot_merge_presuspend()
2198 struct dm_snapshot *s = ti->private; in snapshot_preresume()
2199 struct dm_snapshot *snap_src = NULL, *snap_dest = NULL; in snapshot_preresume()
2221 struct dm_snapshot *s = ti->private; in snapshot_resume()
2222 struct dm_snapshot *snap_src = NULL, *snap_dest = NULL, *snap_merging = NULL; in snapshot_resume()
2295 struct dm_snapshot *s = ti->private; in snapshot_merge_resume()
2314 struct dm_snapshot *snap = ti->private; in snapshot_status()
2382 struct dm_snapshot *snap = ti->private; in snapshot_iterate_devices()
2395 struct dm_snapshot *snap = ti->private; in snapshot_io_hints()
2398 struct dm_snapshot *snap_src = NULL, *snap_dest = NULL; in snapshot_io_hints()
2433 struct dm_snapshot *snap; in __origin_write()
2561 struct dm_snapshot *s; in do_origin()
2588 static int origin_write_extent(struct dm_snapshot *merging_snap, in origin_write_extent()