region_t
region_t region;
static int userspace_is_clean(struct dm_dirty_log *log, region_t region)
static int userspace_in_sync(struct dm_dirty_log *log, region_t region,
region_t region_count;
static void userspace_mark_region(struct dm_dirty_log *log, region_t region)
static void userspace_clear_region(struct dm_dirty_log *log, region_t region)
static int userspace_get_resync_work(struct dm_dirty_log *log, region_t *region)
region_t r;
region_t region, int in_sync)
region_t r;
static region_t userspace_get_sync_count(struct dm_dirty_log *log)
return (region_t)sync_count;
region_t region)
region_t sync_count;
static int core_is_clean(struct dm_dirty_log *log, region_t region)
static int core_in_sync(struct dm_dirty_log *log, region_t region, int block)
static void core_mark_region(struct dm_dirty_log *log, region_t region)
static void core_clear_region(struct dm_dirty_log *log, region_t region)
static int core_get_resync_work(struct dm_dirty_log *log, region_t *region)
static void core_set_region_sync(struct dm_dirty_log *log, region_t region,
static region_t core_get_sync_count(struct dm_dirty_log *log)
region_t write_region;
region_t key = dm_rh_get_region_key(reg);
region_t region = dm_rh_bio_to_region(ms->rh, bio);
static inline int region_in_sync(struct mirror_set *ms, region_t region,
region_t region;
region_t region;
region_t nr_regions;
region_t key;
static region_t dm_rh_sector_to_region(struct dm_region_hash *rh, sector_t sector)
sector_t dm_rh_region_to_sector(struct dm_region_hash *rh, region_t region)
region_t dm_rh_bio_to_region(struct dm_region_hash *rh, struct bio *bio)
region_t dm_rh_get_region_key(struct dm_region *reg)
region_t nr_regions)
static unsigned int rh_hash(struct dm_region_hash *rh, region_t region)
static struct dm_region *__rh_lookup(struct dm_region_hash *rh, region_t region)
static struct dm_region *__rh_alloc(struct dm_region_hash *rh, region_t region)
static struct dm_region *__rh_find(struct dm_region_hash *rh, region_t region)
int dm_rh_get_state(struct dm_region_hash *rh, region_t region, int may_block)
region_t region = dm_rh_bio_to_region(rh, bio);
static void rh_inc(struct dm_region_hash *rh, region_t region)
void dm_rh_dec(struct dm_region_hash *rh, region_t region)
region_t region;
int (*get_resync_work)(struct dm_dirty_log *log, region_t *region);
region_t region, int in_sync);
region_t (*get_sync_count)(struct dm_dirty_log *log);
int (*is_remote_recovering)(struct dm_dirty_log *log, region_t region);
int (*is_clean)(struct dm_dirty_log *log, region_t region);
int (*in_sync)(struct dm_dirty_log *log, region_t region,
void (*mark_region)(struct dm_dirty_log *log, region_t region);
void (*clear_region)(struct dm_dirty_log *log, region_t region);
region_t nr_regions);
region_t dm_rh_bio_to_region(struct dm_region_hash *rh, struct bio *bio);
sector_t dm_rh_region_to_sector(struct dm_region_hash *rh, region_t region);
region_t dm_rh_get_region_key(struct dm_region *reg);
int dm_rh_get_state(struct dm_region_hash *rh, region_t region, int may_block);
void dm_rh_set_state(struct dm_region_hash *rh, region_t region,
void dm_rh_dec(struct dm_region_hash *rh, region_t region);
region_t regions[STI_REGION_MAX];