pbn_lock
void update_metadata_for_data_vio_write(struct data_vio *data_vio, struct pbn_lock *lock)
struct pbn_lock *lock;
struct pbn_lock *lock;
struct pbn_lock *lock);
static bool acquire_provisional_reference(struct data_vio *agent, struct pbn_lock *lock,
struct pbn_lock *lock;
struct pbn_lock *pbn_lock)
if (!vdo_is_pbn_read_lock(pbn_lock))
vdo_downgrade_pbn_write_lock(pbn_lock, true);
set_duplicate_lock(data_vio->hash_lock, pbn_lock);
claimed = vdo_claim_pbn_lock_increment(pbn_lock);
struct pbn_lock *duplicate_lock;
struct pbn_lock *vdo_get_duplicate_lock(struct data_vio *data_vio)
static void set_duplicate_lock(struct hash_lock *hash_lock, struct pbn_lock *pbn_lock)
pbn_lock->holder_count += 1;
hash_lock->duplicate_lock = pbn_lock;
struct pbn_lock * __must_check vdo_get_duplicate_lock(struct data_vio *data_vio);
struct pbn_lock *pbn_lock);
bool vdo_claim_pbn_lock_increment(struct pbn_lock *lock)
void vdo_assign_pbn_lock_provisional_reference(struct pbn_lock *lock)
void vdo_unassign_pbn_lock_provisional_reference(struct pbn_lock *lock)
static void release_pbn_lock_provisional_reference(struct pbn_lock *lock,
struct pbn_lock lock;
static void return_pbn_lock_to_pool(struct pbn_lock_pool *pool, struct pbn_lock *lock)
struct pbn_lock **lock_ptr)
struct pbn_lock *vdo_get_physical_zone_pbn_lock(struct physical_zone *zone,
struct pbn_lock **lock_ptr)
struct pbn_lock *lock, *new_lock = NULL;
struct pbn_lock *lock;
static inline bool has_lock_type(const struct pbn_lock *lock, enum pbn_lock_type type)
struct pbn_lock *lock)
struct pbn_lock *holder;
bool vdo_is_pbn_read_lock(const struct pbn_lock *lock)
static inline void set_pbn_lock_type(struct pbn_lock *lock, enum pbn_lock_type type)
void vdo_downgrade_pbn_write_lock(struct pbn_lock *lock, bool compressed_write)
struct pbn_lock **lock_ptr);
struct pbn_lock *lock);
bool __must_check vdo_is_pbn_read_lock(const struct pbn_lock *lock);
void vdo_downgrade_pbn_write_lock(struct pbn_lock *lock, bool compressed_write);
bool __must_check vdo_claim_pbn_lock_increment(struct pbn_lock *lock);
static inline bool vdo_pbn_lock_has_provisional_reference(struct pbn_lock *lock)
void vdo_assign_pbn_lock_provisional_reference(struct pbn_lock *lock);
void vdo_unassign_pbn_lock_provisional_reference(struct pbn_lock *lock);
struct pbn_lock * __must_check vdo_get_physical_zone_pbn_lock(struct physical_zone *zone,
struct pbn_lock *lock, vdo_refcount_t *counter_ptr,
struct pbn_lock *lock = vdo_get_physical_zone_pbn_lock(updater->zpbn.zone,
struct pbn_lock *lock, bool normal_operation,
struct pbn_lock *lock)
struct pbn_lock *lock);