Lines Matching refs:hash_lock
218 struct hash_lock { struct
342 static void return_hash_lock_to_pool(struct hash_zone *zone, struct hash_lock *lock) in return_hash_lock_to_pool()
360 if (data_vio->hash_lock == NULL) in vdo_get_duplicate_lock()
363 return data_vio->hash_lock->duplicate_lock; in vdo_get_duplicate_lock()
372 static inline u64 hash_lock_key(struct hash_lock *lock) in hash_lock_key()
400 VDO_ASSERT_LOG_ONLY(data_vio == data_vio->hash_lock->agent, in assert_hash_lock_agent()
410 static void set_duplicate_lock(struct hash_lock *hash_lock, struct pbn_lock *pbn_lock) in set_duplicate_lock() argument
412 VDO_ASSERT_LOG_ONLY((hash_lock->duplicate_lock == NULL), in set_duplicate_lock()
415 hash_lock->duplicate_lock = pbn_lock; in set_duplicate_lock()
424 static inline struct data_vio *dequeue_lock_waiter(struct hash_lock *lock) in dequeue_lock_waiter()
436 static void set_hash_lock(struct data_vio *data_vio, struct hash_lock *new_lock) in set_hash_lock()
438 struct hash_lock *old_lock = data_vio->hash_lock; in set_hash_lock()
462 data_vio->hash_lock = NULL; in set_hash_lock()
475 data_vio->hash_lock = new_lock; in set_hash_lock()
480 static void start_deduping(struct hash_lock *lock, struct data_vio *agent,
482 static void start_locking(struct hash_lock *lock, struct data_vio *agent);
483 static void start_writing(struct hash_lock *lock, struct data_vio *agent);
523 static struct data_vio *retire_lock_agent(struct hash_lock *lock) in retire_lock_agent()
540 static void wait_on_hash_lock(struct hash_lock *lock, struct data_vio *data_vio) in wait_on_hash_lock()
581 static void start_bypassing(struct hash_lock *lock, struct data_vio *agent) in start_bypassing()
589 struct hash_lock *lock = data_vio->hash_lock; in vdo_clean_failed_hash_lock()
632 struct hash_lock *lock = agent->hash_lock; in finish_unlocking()
688 struct hash_lock *lock = agent->hash_lock; in unlock_duplicate_pbn()
710 static void start_unlocking(struct hash_lock *lock, struct data_vio *agent) in start_unlocking()
745 struct hash_lock *lock = agent->hash_lock; in finish_updating()
791 static void start_updating(struct hash_lock *lock, struct data_vio *agent) in start_updating()
814 static void finish_deduping(struct hash_lock *lock, struct data_vio *data_vio) in finish_deduping()
865 struct hash_lock *replace_lock, in acquire_lock()
866 struct hash_lock **lock_ptr) in acquire_lock()
868 struct hash_lock *lock, *new_lock; in acquire_lock()
880 new_lock = list_entry(zone->lock_pool.prev, struct hash_lock, pool_node); in acquire_lock()
927 struct hash_lock *new_lock = context; in enter_forked_lock()
941 static void fork_hash_lock(struct hash_lock *old_lock, struct data_vio *new_agent) in fork_hash_lock()
943 struct hash_lock *new_lock; in fork_hash_lock()
979 static void launch_dedupe(struct hash_lock *lock, struct data_vio *data_vio, in launch_dedupe()
1004 static void start_deduping(struct hash_lock *lock, struct data_vio *agent, in start_deduping()
1076 struct hash_lock *lock = agent->hash_lock; in finish_verifying()
1191 static void start_verifying(struct hash_lock *lock, struct data_vio *agent) in start_verifying()
1225 struct hash_lock *lock = agent->hash_lock; in finish_locking()
1397 set_duplicate_lock(agent->hash_lock, lock); in lock_duplicate_pbn()
1412 static void start_locking(struct hash_lock *lock, struct data_vio *agent) in start_locking()
1442 static void finish_writing(struct hash_lock *lock, struct data_vio *agent) in finish_writing()
1506 static struct data_vio *select_writing_agent(struct hash_lock *lock) in select_writing_agent()
1555 static void start_writing(struct hash_lock *lock, struct data_vio *agent) in start_writing()
1666 struct hash_lock *lock = agent->hash_lock; in finish_querying()
1703 static void start_querying(struct hash_lock *lock, struct data_vio *data_vio) in start_querying()
1720 static void report_bogus_lock_state(struct hash_lock *lock, struct data_vio *data_vio) in report_bogus_lock_state()
1741 struct hash_lock *lock = data_vio->hash_lock; in vdo_continue_hash_lock()
1786 static bool is_hash_collision(struct hash_lock *lock, struct data_vio *candidate) in is_hash_collision()
1812 result = VDO_ASSERT(data_vio->hash_lock == NULL, in assert_hash_lock_preconditions()
1838 struct hash_lock *lock; in vdo_acquire_hash_lock()
1912 struct hash_lock *lock = data_vio->hash_lock; in vdo_release_hash_lock()
1927 struct hash_lock *removed; in vdo_release_hash_lock()
1960 struct hash_lock *hash_lock = data_vio->hash_lock; in transfer_allocation_lock() local
1970 hash_lock->duplicate = data_vio->new_mapped; in transfer_allocation_lock()
1977 hash_lock->duplicate_lock = vdo_forget(allocation->lock); in transfer_allocation_lock()
2009 data_vio->hash_lock->duplicate = data_vio->new_mapped; in vdo_share_compressed_write_lock()
2010 set_duplicate_lock(data_vio->hash_lock, pbn_lock); in vdo_share_compressed_write_lock()
2364 result = vdo_allocate(LOCK_POOL_CAPACITY, struct hash_lock, "hash_lock array", in initialize_zone()
2693 get_hash_zone_statistics(&zones->zones[zone], &stats->hash_lock); in vdo_get_dedupe_statistics()
2737 static void dump_hash_lock(const struct hash_lock *lock) in dump_hash_lock()