Lines Matching refs:lock
1048 struct dlm_lock *lock; in dlm_move_reco_locks_to_list() local
1057 list_for_each_entry(lock, &res->granted, list) { in dlm_move_reco_locks_to_list()
1058 if (lock->ml.node == dead_node) { in dlm_move_reco_locks_to_list()
1063 list_del_init(&lock->list); in dlm_move_reco_locks_to_list()
1064 dlm_lock_put(lock); in dlm_move_reco_locks_to_list()
1067 dlm_lock_put(lock); in dlm_move_reco_locks_to_list()
1180 static void dlm_prepare_lvb_for_migration(struct dlm_lock *lock, in dlm_prepare_lvb_for_migration() argument
1184 if (!lock->lksb) in dlm_prepare_lvb_for_migration()
1192 if (lock->ml.type != LKM_EXMODE && lock->ml.type != LKM_PRMODE) in dlm_prepare_lvb_for_migration()
1196 memcpy(mres->lvb, lock->lksb->lvb, DLM_LVB_LEN); in dlm_prepare_lvb_for_migration()
1201 if (!memcmp(mres->lvb, lock->lksb->lvb, DLM_LVB_LEN)) in dlm_prepare_lvb_for_migration()
1206 dlm_get_lock_cookie_node(be64_to_cpu(lock->ml.cookie)), in dlm_prepare_lvb_for_migration()
1207 dlm_get_lock_cookie_seq(be64_to_cpu(lock->ml.cookie)), in dlm_prepare_lvb_for_migration()
1208 lock->lockres->lockname.len, lock->lockres->lockname.name, in dlm_prepare_lvb_for_migration()
1209 lock->ml.node); in dlm_prepare_lvb_for_migration()
1210 dlm_print_one_lock_resource(lock->lockres); in dlm_prepare_lvb_for_migration()
1216 static int dlm_add_lock_to_array(struct dlm_lock *lock, in dlm_add_lock_to_array() argument
1223 ml->cookie = lock->ml.cookie; in dlm_add_lock_to_array()
1224 ml->type = lock->ml.type; in dlm_add_lock_to_array()
1225 ml->convert_type = lock->ml.convert_type; in dlm_add_lock_to_array()
1226 ml->highest_blocked = lock->ml.highest_blocked; in dlm_add_lock_to_array()
1228 if (lock->lksb) { in dlm_add_lock_to_array()
1229 ml->flags = lock->lksb->flags; in dlm_add_lock_to_array()
1230 dlm_prepare_lvb_for_migration(lock, mres, queue); in dlm_add_lock_to_array()
1232 ml->node = lock->ml.node; in dlm_add_lock_to_array()
1276 struct dlm_lock *lock; in dlm_send_one_lockres() local
1299 list_for_each_entry(lock, queue, list) { in dlm_send_one_lockres()
1302 if (!dlm_add_lock_to_array(lock, mres, i)) in dlm_send_one_lockres()
1807 struct dlm_lock *lock; in dlm_process_recovery_data() local
1840 lock = NULL; in dlm_process_recovery_data()
1845 lock = list_entry(iter, in dlm_process_recovery_data()
1847 if (lock->ml.cookie == ml->cookie) in dlm_process_recovery_data()
1849 lock = NULL; in dlm_process_recovery_data()
1851 if (lock) in dlm_process_recovery_data()
1857 if (!lock) { in dlm_process_recovery_data()
1871 if (lock->ml.node != ml->node) { in dlm_process_recovery_data()
1872 c = lock->ml.cookie; in dlm_process_recovery_data()
1878 lock->ml.node); in dlm_process_recovery_data()
1909 list_move_tail(&lock->list, queue); in dlm_process_recovery_data()
2000 list_for_each_entry(lock, queue, list) { in dlm_process_recovery_data()
2001 if (lock->ml.cookie == ml->cookie) { in dlm_process_recovery_data()
2002 c = lock->ml.cookie; in dlm_process_recovery_data()
2058 struct dlm_lock *lock, *next; in dlm_move_lockres_to_recovery_list() local
2077 list_for_each_entry_safe(lock, next, queue, list) { in dlm_move_lockres_to_recovery_list()
2078 dlm_lock_get(lock); in dlm_move_lockres_to_recovery_list()
2079 if (lock->convert_pending) { in dlm_move_lockres_to_recovery_list()
2084 dlm_revert_pending_convert(res, lock); in dlm_move_lockres_to_recovery_list()
2085 lock->convert_pending = 0; in dlm_move_lockres_to_recovery_list()
2086 } else if (lock->lock_pending) { in dlm_move_lockres_to_recovery_list()
2097 dlm_revert_pending_lock(res, lock); in dlm_move_lockres_to_recovery_list()
2098 lock->lock_pending = 0; in dlm_move_lockres_to_recovery_list()
2099 } else if (lock->unlock_pending) { in dlm_move_lockres_to_recovery_list()
2113 dlm_commit_pending_unlock(res, lock); in dlm_move_lockres_to_recovery_list()
2114 lock->unlock_pending = 0; in dlm_move_lockres_to_recovery_list()
2115 } else if (lock->cancel_pending) { in dlm_move_lockres_to_recovery_list()
2124 dlm_commit_pending_cancel(res, lock); in dlm_move_lockres_to_recovery_list()
2125 lock->cancel_pending = 0; in dlm_move_lockres_to_recovery_list()
2127 dlm_lock_put(lock); in dlm_move_lockres_to_recovery_list()
2207 static inline int dlm_lvb_needs_invalidation(struct dlm_lock *lock, int local) in dlm_lvb_needs_invalidation() argument
2210 if (lock->ml.type != LKM_EXMODE && in dlm_lvb_needs_invalidation()
2211 lock->ml.type != LKM_PRMODE) in dlm_lvb_needs_invalidation()
2213 } else if (lock->ml.type == LKM_EXMODE) in dlm_lvb_needs_invalidation()
2222 struct dlm_lock *lock; in dlm_revalidate_lvb() local
2243 list_for_each_entry(lock, queue, list) { in dlm_revalidate_lvb()
2244 if (lock->ml.node == search_node) { in dlm_revalidate_lvb()
2245 if (dlm_lvb_needs_invalidation(lock, local)) { in dlm_revalidate_lvb()
2248 memset(lock->lksb->lvb, 0, DLM_LVB_LEN); in dlm_revalidate_lvb()
2264 struct dlm_lock *lock, *next; in dlm_free_dead_locks() local
2278 list_for_each_entry_safe(lock, next, &res->granted, list) { in dlm_free_dead_locks()
2279 if (lock->ml.node == dead_node) { in dlm_free_dead_locks()
2280 list_del_init(&lock->list); in dlm_free_dead_locks()
2281 dlm_lock_put(lock); in dlm_free_dead_locks()
2283 dlm_lock_put(lock); in dlm_free_dead_locks()
2287 list_for_each_entry_safe(lock, next, &res->converting, list) { in dlm_free_dead_locks()
2288 if (lock->ml.node == dead_node) { in dlm_free_dead_locks()
2289 list_del_init(&lock->list); in dlm_free_dead_locks()
2290 dlm_lock_put(lock); in dlm_free_dead_locks()
2292 dlm_lock_put(lock); in dlm_free_dead_locks()
2296 list_for_each_entry_safe(lock, next, &res->blocked, list) { in dlm_free_dead_locks()
2297 if (lock->ml.node == dead_node) { in dlm_free_dead_locks()
2298 list_del_init(&lock->list); in dlm_free_dead_locks()
2299 dlm_lock_put(lock); in dlm_free_dead_locks()
2301 dlm_lock_put(lock); in dlm_free_dead_locks()
2335 struct dlm_lock *lock; in dlm_do_local_recovery_cleanup() local
2363 list_for_each_entry(lock, &res->granted, list) { in dlm_do_local_recovery_cleanup()
2364 if (lock->ml.node == dead_node) { in dlm_do_local_recovery_cleanup()
2369 list_del_init(&lock->list); in dlm_do_local_recovery_cleanup()
2370 dlm_lock_put(lock); in dlm_do_local_recovery_cleanup()
2374 dlm_lock_put(lock); in dlm_do_local_recovery_cleanup()