Lines Matching refs:chunk
189 chunk_t chunk) in chunk_to_sector() argument
191 return chunk << store->chunk_shift; in chunk_to_sector()
246 chunk_t chunk; member
261 static void track_chunk(struct dm_snapshot *s, struct bio *bio, chunk_t chunk) in track_chunk() argument
265 c->chunk = chunk; in track_chunk()
269 &s->tracked_chunk_hash[DM_TRACKED_CHUNK_HASH(chunk)]); in track_chunk()
283 static int __chunk_is_tracked(struct dm_snapshot *s, chunk_t chunk) in __chunk_is_tracked() argument
291 &s->tracked_chunk_hash[DM_TRACKED_CHUNK_HASH(chunk)], node) { in __chunk_is_tracked()
292 if (c->chunk == chunk) { in __chunk_is_tracked()
307 static void __check_for_conflicting_io(struct dm_snapshot *s, chunk_t chunk) in __check_for_conflicting_io() argument
309 while (__chunk_is_tracked(s, chunk)) in __check_for_conflicting_io()
629 static uint32_t exception_hash(struct dm_exception_table *et, chunk_t chunk);
637 static void dm_exception_table_lock_init(struct dm_snapshot *s, chunk_t chunk, in dm_exception_table_lock_init() argument
643 lock->complete_slot = &complete->table[exception_hash(complete, chunk)]; in dm_exception_table_lock_init()
644 lock->pending_slot = &pending->table[exception_hash(pending, chunk)]; in dm_exception_table_lock_init()
696 static uint32_t exception_hash(struct dm_exception_table *et, chunk_t chunk) in exception_hash() argument
698 return (chunk >> et->hash_shift) & et->hash_mask; in exception_hash()
711 chunk_t chunk) in dm_lookup_exception() argument
717 slot = &et->table[exception_hash(et, chunk)]; in dm_lookup_exception()
719 if (chunk >= e->old_chunk && in dm_lookup_exception()
720 chunk <= e->old_chunk + dm_consecutive_chunk_count(e)) in dm_lookup_exception()
1862 __lookup_pending_exception(struct dm_snapshot *s, chunk_t chunk) in __lookup_pending_exception() argument
1864 struct dm_exception *e = dm_lookup_exception(&s->pending, chunk); in __lookup_pending_exception()
1880 struct dm_snap_pending_exception *pe, chunk_t chunk) in __insert_pending_exception() argument
1882 pe->e.old_chunk = chunk; in __insert_pending_exception()
1913 struct dm_snap_pending_exception *pe, chunk_t chunk) in __find_pending_exception() argument
1917 pe2 = __lookup_pending_exception(s, chunk); in __find_pending_exception()
1923 return __insert_pending_exception(s, pe, chunk); in __find_pending_exception()
1927 struct bio *bio, chunk_t chunk) in remap_exception() argument
1932 (chunk - e->old_chunk)) + in remap_exception()
1947 struct bio *bio, chunk_t chunk) in zero_exception() argument
1972 chunk_t chunk; in snapshot_map() local
1983 chunk = sector_to_chunk(s->store, bio->bi_iter.bi_sector); in snapshot_map()
1984 dm_exception_table_lock_init(s, chunk, &lock); in snapshot_map()
2014 track_chunk(s, bio, chunk); in snapshot_map()
2021 e = dm_lookup_exception(&s->complete, chunk); in snapshot_map()
2023 remap_exception(s, e, bio, chunk); in snapshot_map()
2028 zero_exception(s, e, bio, chunk); in snapshot_map()
2051 pe = __lookup_pending_exception(s, chunk); in snapshot_map()
2057 e = dm_lookup_exception(&s->complete, chunk); in snapshot_map()
2060 remap_exception(s, e, bio, chunk); in snapshot_map()
2064 pe = __find_pending_exception(s, pe, chunk); in snapshot_map()
2085 remap_exception(s, &pe->e, bio, chunk); in snapshot_map()
2113 track_chunk(s, bio, chunk); in snapshot_map()
2140 chunk_t chunk; in snapshot_merge_map() local
2158 chunk = sector_to_chunk(s->store, bio->bi_iter.bi_sector); in snapshot_merge_map()
2167 e = dm_lookup_exception(&s->complete, chunk); in snapshot_merge_map()
2171 chunk >= s->first_merging_chunk && in snapshot_merge_map()
2172 chunk < (s->first_merging_chunk + in snapshot_merge_map()
2180 remap_exception(s, e, bio, chunk); in snapshot_merge_map()
2183 track_chunk(s, bio, chunk); in snapshot_merge_map()
2465 chunk_t chunk; in __origin_write() local
2484 chunk = sector_to_chunk(snap->store, sector); in __origin_write()
2485 dm_exception_table_lock_init(snap, chunk, &lock); in __origin_write()
2494 pe = __lookup_pending_exception(snap, chunk); in __origin_write()
2501 e = dm_lookup_exception(&snap->complete, chunk); in __origin_write()
2509 pe2 = __lookup_pending_exception(snap, chunk); in __origin_write()
2512 e = dm_lookup_exception(&snap->complete, chunk); in __origin_write()
2518 pe = __insert_pending_exception(snap, pe, chunk); in __origin_write()