• Home
  • Raw
  • Download

Lines Matching refs:res

71 static inline int dlm_num_locks_in_lockres(struct dlm_lock_resource *res);
79 struct dlm_lock_resource *res,
82 struct dlm_lock_resource *res,
99 struct dlm_lock_resource *res,
259 struct dlm_lock_resource *res; in dlm_print_reco_node_status() local
297 list_for_each_entry(res, &dlm->reco.resources, recovering) { in dlm_print_reco_node_status()
299 dlm->name, res->lockname.len, res->lockname.name); in dlm_print_reco_node_status()
868 struct dlm_lock_resource *res; in dlm_request_all_locks_worker() local
914 list_for_each_entry(res, &resources, recovering) { in dlm_request_all_locks_worker()
915 ret = dlm_send_one_lockres(dlm, res, mres, reco_master, in dlm_request_all_locks_worker()
1040 struct dlm_lock_resource *res, *next; in dlm_move_reco_locks_to_list() local
1044 list_for_each_entry_safe(res, next, &dlm->reco.resources, recovering) { in dlm_move_reco_locks_to_list()
1047 if (dlm_is_recovery_lock(res->lockname.name, in dlm_move_reco_locks_to_list()
1048 res->lockname.len)) { in dlm_move_reco_locks_to_list()
1049 spin_lock(&res->spinlock); in dlm_move_reco_locks_to_list()
1050 list_for_each_entry(lock, &res->granted, list) { in dlm_move_reco_locks_to_list()
1061 spin_unlock(&res->spinlock); in dlm_move_reco_locks_to_list()
1065 if (res->owner == dead_node) { in dlm_move_reco_locks_to_list()
1069 list_move_tail(&res->recovering, list); in dlm_move_reco_locks_to_list()
1070 } else if (res->owner == DLM_LOCK_RES_OWNER_UNKNOWN) { in dlm_move_reco_locks_to_list()
1073 list_move_tail(&res->recovering, list); in dlm_move_reco_locks_to_list()
1079 static inline int dlm_num_locks_in_lockres(struct dlm_lock_resource *res) in dlm_num_locks_in_lockres() argument
1082 struct list_head *iter, *queue = &res->granted; in dlm_num_locks_in_lockres()
1097 struct dlm_lock_resource *res, in dlm_send_mig_lockres_msg() argument
1120 dlm->name, res->lockname.len, res->lockname.name, in dlm_send_mig_lockres_msg()
1146 dlm_init_migratable_lockres(mres, res->lockname.name, in dlm_send_mig_lockres_msg()
1147 res->lockname.len, mres_total_locks, in dlm_send_mig_lockres_msg()
1237 int dlm_send_one_lockres(struct dlm_ctxt *dlm, struct dlm_lock_resource *res, in dlm_send_one_lockres() argument
1251 total_locks = dlm_num_locks_in_lockres(res); in dlm_send_one_lockres()
1260 dlm_init_migratable_lockres(mres, res->lockname.name, in dlm_send_one_lockres()
1261 res->lockname.len, total_locks, in dlm_send_one_lockres()
1262 mig_cookie, flags, res->owner); in dlm_send_one_lockres()
1266 queue = dlm_list_idx_to_ptr(res, i); in dlm_send_one_lockres()
1276 res, total_locks); in dlm_send_one_lockres()
1284 dlm->name, res->lockname.len, res->lockname.name, in dlm_send_one_lockres()
1290 ret = dlm_send_mig_lockres_msg(dlm, mres, send_to, res, total_locks); in dlm_send_one_lockres()
1303 res->lockname.len, res->lockname.name); in dlm_send_one_lockres()
1333 struct dlm_lock_resource *res = NULL; in dlm_mig_lockres_handler() local
1361 res = dlm_lookup_lockres(dlm, mres->lockname, mres->lockname_len); in dlm_mig_lockres_handler()
1362 if (res) { in dlm_mig_lockres_handler()
1365 spin_lock(&res->spinlock); in dlm_mig_lockres_handler()
1367 res->state |= DLM_LOCK_RES_RECOVERING; in dlm_mig_lockres_handler()
1369 if (res->state & DLM_LOCK_RES_MIGRATING) { in dlm_mig_lockres_handler()
1375 } else if (res->state & DLM_LOCK_RES_RECOVERING) { in dlm_mig_lockres_handler()
1381 spin_unlock(&res->spinlock); in dlm_mig_lockres_handler()
1384 res->state |= DLM_LOCK_RES_MIGRATING; in dlm_mig_lockres_handler()
1386 spin_unlock(&res->spinlock); in dlm_mig_lockres_handler()
1390 res = dlm_new_lockres(dlm, mres->lockname, mres->lockname_len); in dlm_mig_lockres_handler()
1391 if (!res) in dlm_mig_lockres_handler()
1396 dlm_lockres_get(res); in dlm_mig_lockres_handler()
1400 res->state |= DLM_LOCK_RES_RECOVERING; in dlm_mig_lockres_handler()
1402 res->state |= DLM_LOCK_RES_MIGRATING; in dlm_mig_lockres_handler()
1405 __dlm_insert_lockres(dlm, res); in dlm_mig_lockres_handler()
1411 dlm_lockres_get(res); in dlm_mig_lockres_handler()
1426 spin_lock(&res->spinlock); in dlm_mig_lockres_handler()
1427 res->state &= ~DLM_LOCK_RES_IN_PROGRESS; in dlm_mig_lockres_handler()
1428 spin_unlock(&res->spinlock); in dlm_mig_lockres_handler()
1429 wake_up(&res->wq); in dlm_mig_lockres_handler()
1436 spin_lock(&res->spinlock); in dlm_mig_lockres_handler()
1439 dlm_lockres_grab_inflight_ref(dlm, res); in dlm_mig_lockres_handler()
1449 dlm_change_lockres_owner(dlm, res, dlm->node_num); in dlm_mig_lockres_handler()
1451 spin_unlock(&res->spinlock); in dlm_mig_lockres_handler()
1457 item->u.ml.lockres = res; /* already have a ref */ in dlm_mig_lockres_handler()
1468 dlm_lockres_put(res); in dlm_mig_lockres_handler()
1488 struct dlm_lock_resource *res; in dlm_mig_lockres_worker() local
1495 res = item->u.ml.lockres; in dlm_mig_lockres_worker()
1503 ret = dlm_lockres_master_requery(dlm, res, &real_master); in dlm_mig_lockres_worker()
1512 res->lockname.len, res->lockname.name); in dlm_mig_lockres_worker()
1514 spin_lock(&res->spinlock); in dlm_mig_lockres_worker()
1515 dlm_lockres_drop_inflight_ref(dlm, res); in dlm_mig_lockres_worker()
1516 spin_unlock(&res->spinlock); in dlm_mig_lockres_worker()
1519 real_master, res->lockname.len, in dlm_mig_lockres_worker()
1520 res->lockname.name); in dlm_mig_lockres_worker()
1526 ret = dlm_process_recovery_data(dlm, res, mres); in dlm_mig_lockres_worker()
1534 ret = dlm_finish_migration(dlm, res, mres->master); in dlm_mig_lockres_worker()
1541 if (res) { in dlm_mig_lockres_worker()
1543 dlm_lockres_put(res); in dlm_mig_lockres_worker()
1544 dlm_lockres_put(res); in dlm_mig_lockres_worker()
1553 struct dlm_lock_resource *res, in dlm_lockres_master_requery() argument
1593 ret = dlm_do_master_requery(dlm, res, nodenum, real_master); in dlm_lockres_master_requery()
1610 int dlm_do_master_requery(struct dlm_ctxt *dlm, struct dlm_lock_resource *res, in dlm_do_master_requery() argument
1619 req.namelen = res->lockname.len; in dlm_do_master_requery()
1620 memcpy(req.name, res->lockname.name, res->lockname.len); in dlm_do_master_requery()
1647 struct dlm_lock_resource *res = NULL; in dlm_master_requery_handler() local
1661 res = __dlm_lookup_lockres(dlm, req->name, req->namelen, hash); in dlm_master_requery_handler()
1662 if (res) { in dlm_master_requery_handler()
1663 spin_lock(&res->spinlock); in dlm_master_requery_handler()
1664 master = res->owner; in dlm_master_requery_handler()
1666 int ret = dlm_dispatch_assert_master(dlm, res, in dlm_master_requery_handler()
1674 dlm_lockres_put(res); in dlm_master_requery_handler()
1675 spin_unlock(&res->spinlock); in dlm_master_requery_handler()
1684 dlm_list_num_to_pointer(struct dlm_lock_resource *res, int list_num) in dlm_list_num_to_pointer() argument
1689 ret = &(res->granted); in dlm_list_num_to_pointer()
1721 struct dlm_lock_resource *res, in dlm_process_recovery_data() argument
1745 spin_lock(&res->spinlock); in dlm_process_recovery_data()
1746 dlm_lockres_set_refmap_bit(from, res); in dlm_process_recovery_data()
1747 spin_unlock(&res->spinlock); in dlm_process_recovery_data()
1755 queue = dlm_list_num_to_pointer(res, ml->list); in dlm_process_recovery_data()
1765 spin_lock(&res->spinlock); in dlm_process_recovery_data()
1767 tmpq = dlm_list_idx_to_ptr(res, j); in dlm_process_recovery_data()
1786 __dlm_print_one_lock_resource(res); in dlm_process_recovery_data()
1793 j, ml->list, res->lockname.len, res->lockname.name); in dlm_process_recovery_data()
1794 spin_unlock(&res->spinlock); in dlm_process_recovery_data()
1804 spin_unlock(&res->spinlock); in dlm_process_recovery_data()
1819 dlm_lock_attach_lockres(newlock, res); in dlm_process_recovery_data()
1822 BUG_ON(queue != &res->converting); in dlm_process_recovery_data()
1841 memcpy(res->lvb, mres->lvb, DLM_LVB_LEN); in dlm_process_recovery_data()
1847 if (!dlm_lvb_is_empty(res->lvb) && in dlm_process_recovery_data()
1849 memcmp(res->lvb, mres->lvb, DLM_LVB_LEN))) { in dlm_process_recovery_data()
1853 res->lockname.len, in dlm_process_recovery_data()
1854 res->lockname.name, ml->type); in dlm_process_recovery_data()
1857 printk("%02x", res->lvb[i]); in dlm_process_recovery_data()
1862 dlm_print_one_lock_resource(res); in dlm_process_recovery_data()
1865 memcpy(res->lvb, mres->lvb, DLM_LVB_LEN); in dlm_process_recovery_data()
1887 spin_lock(&res->spinlock); in dlm_process_recovery_data()
1893 res->lockname.len, res->lockname.name, in dlm_process_recovery_data()
1904 __dlm_print_one_lock_resource(res); in dlm_process_recovery_data()
1914 res->lockname.len, res->lockname.name, ml->node); in dlm_process_recovery_data()
1915 dlm_lockres_set_refmap_bit(ml->node, res); in dlm_process_recovery_data()
1918 spin_unlock(&res->spinlock); in dlm_process_recovery_data()
1924 spin_lock(&res->spinlock); in dlm_process_recovery_data()
1925 dlm_lockres_drop_inflight_ref(dlm, res); in dlm_process_recovery_data()
1926 spin_unlock(&res->spinlock); in dlm_process_recovery_data()
1939 struct dlm_lock_resource *res) in dlm_move_lockres_to_recovery_list() argument
1945 res->state |= DLM_LOCK_RES_RECOVERING; in dlm_move_lockres_to_recovery_list()
1946 if (!list_empty(&res->recovering)) { in dlm_move_lockres_to_recovery_list()
1949 dlm->name, res->lockname.len, res->lockname.name); in dlm_move_lockres_to_recovery_list()
1950 list_del_init(&res->recovering); in dlm_move_lockres_to_recovery_list()
1951 dlm_lockres_put(res); in dlm_move_lockres_to_recovery_list()
1954 dlm_lockres_get(res); in dlm_move_lockres_to_recovery_list()
1955 list_add_tail(&res->recovering, &dlm->reco.resources); in dlm_move_lockres_to_recovery_list()
1959 queue = dlm_list_idx_to_ptr(res, i); in dlm_move_lockres_to_recovery_list()
1967 res->lockname.len, res->lockname.name); in dlm_move_lockres_to_recovery_list()
1968 dlm_revert_pending_convert(res, lock); in dlm_move_lockres_to_recovery_list()
1975 res->lockname.len, res->lockname.name); in dlm_move_lockres_to_recovery_list()
1981 dlm_revert_pending_lock(res, lock); in dlm_move_lockres_to_recovery_list()
1996 res->lockname.len, res->lockname.name); in dlm_move_lockres_to_recovery_list()
1997 dlm_commit_pending_unlock(res, lock); in dlm_move_lockres_to_recovery_list()
2007 res->lockname.len, res->lockname.name); in dlm_move_lockres_to_recovery_list()
2008 dlm_commit_pending_cancel(res, lock); in dlm_move_lockres_to_recovery_list()
2027 struct dlm_lock_resource *res, *next; in dlm_finish_local_lockres_recovery() local
2033 list_for_each_entry_safe(res, next, &dlm->reco.resources, recovering) { in dlm_finish_local_lockres_recovery()
2034 if (res->owner == dead_node) { in dlm_finish_local_lockres_recovery()
2035 list_del_init(&res->recovering); in dlm_finish_local_lockres_recovery()
2036 spin_lock(&res->spinlock); in dlm_finish_local_lockres_recovery()
2039 dlm_change_lockres_owner(dlm, res, new_master); in dlm_finish_local_lockres_recovery()
2040 res->state &= ~DLM_LOCK_RES_RECOVERING; in dlm_finish_local_lockres_recovery()
2041 if (__dlm_lockres_has_locks(res)) in dlm_finish_local_lockres_recovery()
2042 __dlm_dirty_lockres(dlm, res); in dlm_finish_local_lockres_recovery()
2043 spin_unlock(&res->spinlock); in dlm_finish_local_lockres_recovery()
2044 wake_up(&res->wq); in dlm_finish_local_lockres_recovery()
2045 dlm_lockres_put(res); in dlm_finish_local_lockres_recovery()
2055 hlist_for_each_entry(res, hash_iter, bucket, hash_node) { in dlm_finish_local_lockres_recovery()
2056 if (res->state & DLM_LOCK_RES_RECOVERING) { in dlm_finish_local_lockres_recovery()
2057 if (res->owner == dead_node) { in dlm_finish_local_lockres_recovery()
2061 dlm->node_num, res->lockname.len, in dlm_finish_local_lockres_recovery()
2062 res->lockname.name, new_master); in dlm_finish_local_lockres_recovery()
2063 } else if (res->owner == dlm->node_num) { in dlm_finish_local_lockres_recovery()
2067 dlm->node_num, res->lockname.len, in dlm_finish_local_lockres_recovery()
2068 res->lockname.name, new_master); in dlm_finish_local_lockres_recovery()
2072 if (!list_empty(&res->recovering)) { in dlm_finish_local_lockres_recovery()
2075 dlm->name, res->lockname.len, in dlm_finish_local_lockres_recovery()
2076 res->lockname.name, res->owner); in dlm_finish_local_lockres_recovery()
2077 list_del_init(&res->recovering); in dlm_finish_local_lockres_recovery()
2078 dlm_lockres_put(res); in dlm_finish_local_lockres_recovery()
2080 spin_lock(&res->spinlock); in dlm_finish_local_lockres_recovery()
2083 dlm_change_lockres_owner(dlm, res, new_master); in dlm_finish_local_lockres_recovery()
2084 res->state &= ~DLM_LOCK_RES_RECOVERING; in dlm_finish_local_lockres_recovery()
2085 if (__dlm_lockres_has_locks(res)) in dlm_finish_local_lockres_recovery()
2086 __dlm_dirty_lockres(dlm, res); in dlm_finish_local_lockres_recovery()
2087 spin_unlock(&res->spinlock); in dlm_finish_local_lockres_recovery()
2088 wake_up(&res->wq); in dlm_finish_local_lockres_recovery()
2106 struct dlm_lock_resource *res, u8 dead_node) in dlm_revalidate_lvb() argument
2115 assert_spin_locked(&res->spinlock); in dlm_revalidate_lvb()
2117 if (res->owner == dlm->node_num) in dlm_revalidate_lvb()
2129 queue = dlm_list_idx_to_ptr(res, i); in dlm_revalidate_lvb()
2143 res->lockname.len, res->lockname.name, dead_node); in dlm_revalidate_lvb()
2144 memset(res->lvb, 0, DLM_LVB_LEN); in dlm_revalidate_lvb()
2149 struct dlm_lock_resource *res, u8 dead_node) in dlm_free_dead_locks() argument
2159 assert_spin_locked(&res->spinlock); in dlm_free_dead_locks()
2165 list_for_each_entry_safe(lock, next, &res->granted, list) { in dlm_free_dead_locks()
2174 list_for_each_entry_safe(lock, next, &res->converting, list) { in dlm_free_dead_locks()
2183 list_for_each_entry_safe(lock, next, &res->blocked, list) { in dlm_free_dead_locks()
2196 res->lockname.len, res->lockname.name, freed, dead_node); in dlm_free_dead_locks()
2197 BUG_ON(!test_bit(dead_node, res->refmap)); in dlm_free_dead_locks()
2198 dlm_lockres_clear_refmap_bit(dead_node, res); in dlm_free_dead_locks()
2199 } else if (test_bit(dead_node, res->refmap)) { in dlm_free_dead_locks()
2202 res->lockname.len, res->lockname.name, dead_node); in dlm_free_dead_locks()
2203 dlm_lockres_clear_refmap_bit(dead_node, res); in dlm_free_dead_locks()
2207 __dlm_dirty_lockres(dlm, res); in dlm_free_dead_locks()
2220 struct dlm_lock_resource *res; in dlm_do_local_recovery_cleanup() local
2245 hlist_for_each_entry(res, iter, bucket, hash_node) { in dlm_do_local_recovery_cleanup()
2248 if (dlm_is_recovery_lock(res->lockname.name, in dlm_do_local_recovery_cleanup()
2249 res->lockname.len)) { in dlm_do_local_recovery_cleanup()
2250 spin_lock(&res->spinlock); in dlm_do_local_recovery_cleanup()
2251 list_for_each_entry(lock, &res->granted, list) { in dlm_do_local_recovery_cleanup()
2262 spin_unlock(&res->spinlock); in dlm_do_local_recovery_cleanup()
2265 spin_lock(&res->spinlock); in dlm_do_local_recovery_cleanup()
2267 dlm_revalidate_lvb(dlm, res, dead_node); in dlm_do_local_recovery_cleanup()
2268 if (res->owner == dead_node) { in dlm_do_local_recovery_cleanup()
2269 if (res->state & DLM_LOCK_RES_DROPPING_REF) in dlm_do_local_recovery_cleanup()
2274 dlm->name, res->lockname.len, in dlm_do_local_recovery_cleanup()
2275 res->lockname.name, dead_node); in dlm_do_local_recovery_cleanup()
2279 res->state &= ~DLM_LOCK_RES_DROPPING_REF; in dlm_do_local_recovery_cleanup()
2281 dlm_move_lockres_to_recovery_list(dlm, res); in dlm_do_local_recovery_cleanup()
2282 } else if (res->owner == dlm->node_num) { in dlm_do_local_recovery_cleanup()
2283 dlm_free_dead_locks(dlm, res, dead_node); in dlm_do_local_recovery_cleanup()
2284 __dlm_lockres_calc_usage(dlm, res); in dlm_do_local_recovery_cleanup()
2286 spin_unlock(&res->spinlock); in dlm_do_local_recovery_cleanup()
2524 struct dlm_lock_resource *res; in dlm_pick_recovery_master() local
2530 res = dlm_lookup_lockres(dlm, DLM_RECOVERY_LOCK_NAME, in dlm_pick_recovery_master()
2532 if (res) { in dlm_pick_recovery_master()
2533 dlm_print_one_lock_resource(res); in dlm_pick_recovery_master()
2534 dlm_lockres_put(res); in dlm_pick_recovery_master()
2594 struct dlm_lock_resource *res; in dlm_send_begin_reco_message() local
2600 res = dlm_lookup_lockres(dlm, DLM_RECOVERY_LOCK_NAME, in dlm_send_begin_reco_message()
2602 if (res) { in dlm_send_begin_reco_message()
2603 dlm_print_one_lock_resource(res); in dlm_send_begin_reco_message()
2604 dlm_lockres_put(res); in dlm_send_begin_reco_message()