Lines Matching refs:store

24 #include "dm-exception-store.h"
107 struct dm_exception_store *store;
188 static sector_t chunk_to_sector(struct dm_exception_store *store,
191 return chunk << store->chunk_shift;
524 if (!snap_src->store->type->prepare_merge ||
525 !snap_src->store->type->commit_merge) {
526 snap->ti->error = "Snapshot exception store does not "
540 if (l->store->chunk_size < s->store->chunk_size)
549 * Also validate snapshot exception store handovers.
862 snap->store->chunk_size);
893 hash_size = cow_dev_size >> s->store->chunk_shift;
1062 linear_chunks = s->store->type->prepare_merge(s->store, &old_chunk,
1066 DMERR("Read error in exception store: "
1081 * from the exception store to the origin
1083 io_size = linear_chunks * s->store->chunk_size;
1086 dest.sector = chunk_to_sector(s->store, old_chunk);
1090 src.sector = chunk_to_sector(s->store, new_chunk);
1158 if (s->store->type->commit_merge(s->store,
1160 DMERR("Write error in exception store: shutting down merge");
1315 r = dm_exception_store_create(ti, argc, argv, s, &args_used, &s->store);
1317 ti->error = "Couldn't create exception store";
1395 s->store->chunk_size = 0;
1399 r = s->store->type->read_metadata(s->store, dm_add_exception,
1409 if (!s->store->chunk_size) {
1415 r = dm_set_target_max_io_len(ti, s->store->chunk_size);
1431 dm_exception_store_destroy(s->store);
1467 u.store_swap = snap_dest->store;
1468 snap_dest->store = snap_src->store;
1469 snap_dest->store->userspace_supports_overflow = u.store_swap->userspace_supports_overflow;
1470 snap_src->store = u.store_swap;
1472 snap_dest->store->snap = snap_dest;
1473 snap_src->store->snap = snap_src;
1475 snap_dest->ti->max_io_len = snap_dest->store->chunk_size;
1528 dm_exception_store_destroy(s->store);
1646 if (s->store->type->drop_snapshot)
1647 s->store->type->drop_snapshot(s->store);
1754 s->store->type->commit_exception(s->store, &pe->e, !pe->copy_error,
1822 src.sector = chunk_to_sector(s->store, pe->e.old_chunk);
1823 src.count = min((sector_t)s->store->chunk_size, dev_size - src.sector);
1826 dest.sector = chunk_to_sector(s->store, pe->e.new_chunk);
1888 if (s->store->type->prepare_exception(s->store, &pe->e)) {
1930 chunk_to_sector(s->store, dm_chunk_number(e->new_chunk) +
1932 (bio->bi_iter.bi_sector & s->store->chunk_mask);
1952 dest.count = s->store->chunk_size;
1963 (s->store->chunk_size << SECTOR_SHIFT);
1982 chunk = sector_to_chunk(s->store, bio->bi_iter.bi_sector);
2070 if (s->store->userspace_supports_overflow) {
2157 chunk = sector_to_chunk(s->store, bio->bi_iter.bi_sector);
2354 if (snap->store->type->usage) {
2357 snap->store->type->usage(snap->store,
2381 sz += snap->store->type->status(snap->store, type, result + sz,
2423 limits->discard_granularity = snap->store->chunk_size;
2424 limits->max_discard_sectors = snap->store->chunk_size;
2473 chunk = sector_to_chunk(snap->store, sector);