• Home
  • Raw
  • Download

Lines Matching refs:res

70 static inline int dlm_num_locks_in_lockres(struct dlm_lock_resource *res);
78 struct dlm_lock_resource *res,
81 struct dlm_lock_resource *res,
98 struct dlm_lock_resource *res,
258 struct dlm_lock_resource *res; in dlm_print_reco_node_status() local
296 list_for_each_entry(res, &dlm->reco.resources, recovering) { in dlm_print_reco_node_status()
298 dlm->name, res->lockname.len, res->lockname.name); in dlm_print_reco_node_status()
873 struct dlm_lock_resource *res; in dlm_request_all_locks_worker() local
919 list_for_each_entry(res, &resources, recovering) { in dlm_request_all_locks_worker()
920 ret = dlm_send_one_lockres(dlm, res, mres, reco_master, in dlm_request_all_locks_worker()
1045 struct dlm_lock_resource *res, *next; in dlm_move_reco_locks_to_list() local
1049 list_for_each_entry_safe(res, next, &dlm->reco.resources, recovering) { in dlm_move_reco_locks_to_list()
1052 if (dlm_is_recovery_lock(res->lockname.name, in dlm_move_reco_locks_to_list()
1053 res->lockname.len)) { in dlm_move_reco_locks_to_list()
1054 spin_lock(&res->spinlock); in dlm_move_reco_locks_to_list()
1055 list_for_each_entry(lock, &res->granted, list) { in dlm_move_reco_locks_to_list()
1066 spin_unlock(&res->spinlock); in dlm_move_reco_locks_to_list()
1070 if (res->owner == dead_node) { in dlm_move_reco_locks_to_list()
1074 list_move_tail(&res->recovering, list); in dlm_move_reco_locks_to_list()
1075 } else if (res->owner == DLM_LOCK_RES_OWNER_UNKNOWN) { in dlm_move_reco_locks_to_list()
1078 list_move_tail(&res->recovering, list); in dlm_move_reco_locks_to_list()
1084 static inline int dlm_num_locks_in_lockres(struct dlm_lock_resource *res) in dlm_num_locks_in_lockres() argument
1087 struct list_head *iter, *queue = &res->granted; in dlm_num_locks_in_lockres()
1102 struct dlm_lock_resource *res, in dlm_send_mig_lockres_msg() argument
1125 dlm->name, res->lockname.len, res->lockname.name, in dlm_send_mig_lockres_msg()
1155 dlm_init_migratable_lockres(mres, res->lockname.name, in dlm_send_mig_lockres_msg()
1156 res->lockname.len, mres_total_locks, in dlm_send_mig_lockres_msg()
1266 int dlm_send_one_lockres(struct dlm_ctxt *dlm, struct dlm_lock_resource *res, in dlm_send_one_lockres() argument
1280 total_locks = dlm_num_locks_in_lockres(res); in dlm_send_one_lockres()
1289 dlm_init_migratable_lockres(mres, res->lockname.name, in dlm_send_one_lockres()
1290 res->lockname.len, total_locks, in dlm_send_one_lockres()
1291 mig_cookie, flags, res->owner); in dlm_send_one_lockres()
1295 queue = dlm_list_idx_to_ptr(res, i); in dlm_send_one_lockres()
1305 res, total_locks); in dlm_send_one_lockres()
1313 dlm->name, res->lockname.len, res->lockname.name, in dlm_send_one_lockres()
1319 ret = dlm_send_mig_lockres_msg(dlm, mres, send_to, res, total_locks); in dlm_send_one_lockres()
1332 res->lockname.len, res->lockname.name); in dlm_send_one_lockres()
1362 struct dlm_lock_resource *res = NULL; in dlm_mig_lockres_handler() local
1390 res = dlm_lookup_lockres(dlm, mres->lockname, mres->lockname_len); in dlm_mig_lockres_handler()
1391 if (res) { in dlm_mig_lockres_handler()
1394 spin_lock(&res->spinlock); in dlm_mig_lockres_handler()
1396 res->state |= DLM_LOCK_RES_RECOVERING; in dlm_mig_lockres_handler()
1398 if (res->state & DLM_LOCK_RES_MIGRATING) { in dlm_mig_lockres_handler()
1404 } else if (res->state & DLM_LOCK_RES_RECOVERING) { in dlm_mig_lockres_handler()
1410 spin_unlock(&res->spinlock); in dlm_mig_lockres_handler()
1411 dlm_lockres_put(res); in dlm_mig_lockres_handler()
1414 res->state |= DLM_LOCK_RES_MIGRATING; in dlm_mig_lockres_handler()
1416 spin_unlock(&res->spinlock); in dlm_mig_lockres_handler()
1420 res = dlm_new_lockres(dlm, mres->lockname, mres->lockname_len); in dlm_mig_lockres_handler()
1421 if (!res) in dlm_mig_lockres_handler()
1426 dlm_lockres_get(res); in dlm_mig_lockres_handler()
1430 res->state |= DLM_LOCK_RES_RECOVERING; in dlm_mig_lockres_handler()
1432 res->state |= DLM_LOCK_RES_MIGRATING; in dlm_mig_lockres_handler()
1435 __dlm_insert_lockres(dlm, res); in dlm_mig_lockres_handler()
1441 dlm_lockres_get(res); in dlm_mig_lockres_handler()
1456 spin_lock(&res->spinlock); in dlm_mig_lockres_handler()
1457 res->state &= ~DLM_LOCK_RES_IN_PROGRESS; in dlm_mig_lockres_handler()
1458 spin_unlock(&res->spinlock); in dlm_mig_lockres_handler()
1459 wake_up(&res->wq); in dlm_mig_lockres_handler()
1466 spin_lock(&res->spinlock); in dlm_mig_lockres_handler()
1469 dlm_lockres_grab_inflight_ref(dlm, res); in dlm_mig_lockres_handler()
1479 dlm_change_lockres_owner(dlm, res, dlm->node_num); in dlm_mig_lockres_handler()
1481 spin_unlock(&res->spinlock); in dlm_mig_lockres_handler()
1487 item->u.ml.lockres = res; /* already have a ref */ in dlm_mig_lockres_handler()
1498 dlm_lockres_put(res); in dlm_mig_lockres_handler()
1516 struct dlm_lock_resource *res; in dlm_mig_lockres_worker() local
1523 res = item->u.ml.lockres; in dlm_mig_lockres_worker()
1531 ret = dlm_lockres_master_requery(dlm, res, &real_master); in dlm_mig_lockres_worker()
1540 res->lockname.len, res->lockname.name); in dlm_mig_lockres_worker()
1542 spin_lock(&res->spinlock); in dlm_mig_lockres_worker()
1543 dlm_lockres_drop_inflight_ref(dlm, res); in dlm_mig_lockres_worker()
1544 spin_unlock(&res->spinlock); in dlm_mig_lockres_worker()
1547 real_master, res->lockname.len, in dlm_mig_lockres_worker()
1548 res->lockname.name); in dlm_mig_lockres_worker()
1554 ret = dlm_process_recovery_data(dlm, res, mres); in dlm_mig_lockres_worker()
1562 ret = dlm_finish_migration(dlm, res, mres->master); in dlm_mig_lockres_worker()
1569 if (res) { in dlm_mig_lockres_worker()
1571 dlm_lockres_put(res); in dlm_mig_lockres_worker()
1572 dlm_lockres_put(res); in dlm_mig_lockres_worker()
1580 struct dlm_lock_resource *res, in dlm_lockres_master_requery() argument
1620 ret = dlm_do_master_requery(dlm, res, nodenum, real_master); in dlm_lockres_master_requery()
1637 int dlm_do_master_requery(struct dlm_ctxt *dlm, struct dlm_lock_resource *res, in dlm_do_master_requery() argument
1646 req.namelen = res->lockname.len; in dlm_do_master_requery()
1647 memcpy(req.name, res->lockname.name, res->lockname.len); in dlm_do_master_requery()
1676 struct dlm_lock_resource *res = NULL; in dlm_master_requery_handler() local
1690 res = __dlm_lookup_lockres(dlm, req->name, req->namelen, hash); in dlm_master_requery_handler()
1691 if (res) { in dlm_master_requery_handler()
1692 spin_lock(&res->spinlock); in dlm_master_requery_handler()
1693 master = res->owner; in dlm_master_requery_handler()
1695 int ret = dlm_dispatch_assert_master(dlm, res, in dlm_master_requery_handler()
1703 dlm_lockres_put(res); in dlm_master_requery_handler()
1704 spin_unlock(&res->spinlock); in dlm_master_requery_handler()
1713 dlm_list_num_to_pointer(struct dlm_lock_resource *res, int list_num) in dlm_list_num_to_pointer() argument
1718 ret = &(res->granted); in dlm_list_num_to_pointer()
1750 struct dlm_lock_resource *res, in dlm_process_recovery_data() argument
1775 spin_lock(&res->spinlock); in dlm_process_recovery_data()
1776 dlm_lockres_set_refmap_bit(dlm, res, from); in dlm_process_recovery_data()
1777 spin_unlock(&res->spinlock); in dlm_process_recovery_data()
1785 queue = dlm_list_num_to_pointer(res, ml->list); in dlm_process_recovery_data()
1795 spin_lock(&res->spinlock); in dlm_process_recovery_data()
1797 tmpq = dlm_list_idx_to_ptr(res, j); in dlm_process_recovery_data()
1820 __dlm_print_one_lock_resource(res); in dlm_process_recovery_data()
1830 res->lockname.len, res->lockname.name, in dlm_process_recovery_data()
1840 __dlm_print_one_lock_resource(res); in dlm_process_recovery_data()
1850 j, ml->list, res->lockname.len, in dlm_process_recovery_data()
1851 res->lockname.name); in dlm_process_recovery_data()
1852 __dlm_print_one_lock_resource(res); in dlm_process_recovery_data()
1853 spin_unlock(&res->spinlock); in dlm_process_recovery_data()
1863 spin_unlock(&res->spinlock); in dlm_process_recovery_data()
1878 dlm_lock_attach_lockres(newlock, res); in dlm_process_recovery_data()
1881 BUG_ON(queue != &res->converting); in dlm_process_recovery_data()
1900 memcpy(res->lvb, mres->lvb, DLM_LVB_LEN); in dlm_process_recovery_data()
1906 if (!dlm_lvb_is_empty(res->lvb) && in dlm_process_recovery_data()
1908 memcmp(res->lvb, mres->lvb, DLM_LVB_LEN))) { in dlm_process_recovery_data()
1912 res->lockname.len, in dlm_process_recovery_data()
1913 res->lockname.name, ml->type); in dlm_process_recovery_data()
1916 printk("%02x", res->lvb[i]); in dlm_process_recovery_data()
1921 dlm_print_one_lock_resource(res); in dlm_process_recovery_data()
1924 memcpy(res->lvb, mres->lvb, DLM_LVB_LEN); in dlm_process_recovery_data()
1946 spin_lock(&res->spinlock); in dlm_process_recovery_data()
1952 res->lockname.len, res->lockname.name, in dlm_process_recovery_data()
1963 __dlm_print_one_lock_resource(res); in dlm_process_recovery_data()
1973 res->lockname.len, res->lockname.name, ml->node); in dlm_process_recovery_data()
1974 dlm_lockres_set_refmap_bit(dlm, res, ml->node); in dlm_process_recovery_data()
1977 spin_unlock(&res->spinlock); in dlm_process_recovery_data()
1983 spin_lock(&res->spinlock); in dlm_process_recovery_data()
1984 dlm_lockres_drop_inflight_ref(dlm, res); in dlm_process_recovery_data()
1985 spin_unlock(&res->spinlock); in dlm_process_recovery_data()
1997 struct dlm_lock_resource *res) in dlm_move_lockres_to_recovery_list() argument
2004 assert_spin_locked(&res->spinlock); in dlm_move_lockres_to_recovery_list()
2005 res->state |= DLM_LOCK_RES_RECOVERING; in dlm_move_lockres_to_recovery_list()
2006 if (!list_empty(&res->recovering)) { in dlm_move_lockres_to_recovery_list()
2009 dlm->name, res->lockname.len, res->lockname.name); in dlm_move_lockres_to_recovery_list()
2010 list_del_init(&res->recovering); in dlm_move_lockres_to_recovery_list()
2011 dlm_lockres_put(res); in dlm_move_lockres_to_recovery_list()
2014 dlm_lockres_get(res); in dlm_move_lockres_to_recovery_list()
2015 list_add_tail(&res->recovering, &dlm->reco.resources); in dlm_move_lockres_to_recovery_list()
2019 queue = dlm_list_idx_to_ptr(res, i); in dlm_move_lockres_to_recovery_list()
2027 res->lockname.len, res->lockname.name); in dlm_move_lockres_to_recovery_list()
2028 dlm_revert_pending_convert(res, lock); in dlm_move_lockres_to_recovery_list()
2035 res->lockname.len, res->lockname.name); in dlm_move_lockres_to_recovery_list()
2041 dlm_revert_pending_lock(res, lock); in dlm_move_lockres_to_recovery_list()
2056 res->lockname.len, res->lockname.name); in dlm_move_lockres_to_recovery_list()
2057 dlm_commit_pending_unlock(res, lock); in dlm_move_lockres_to_recovery_list()
2067 res->lockname.len, res->lockname.name); in dlm_move_lockres_to_recovery_list()
2068 dlm_commit_pending_cancel(res, lock); in dlm_move_lockres_to_recovery_list()
2086 struct dlm_lock_resource *res, *next; in dlm_finish_local_lockres_recovery() local
2090 list_for_each_entry_safe(res, next, &dlm->reco.resources, recovering) { in dlm_finish_local_lockres_recovery()
2091 if (res->owner == dead_node) { in dlm_finish_local_lockres_recovery()
2093 dlm->name, res->lockname.len, res->lockname.name, in dlm_finish_local_lockres_recovery()
2094 res->owner, new_master); in dlm_finish_local_lockres_recovery()
2095 list_del_init(&res->recovering); in dlm_finish_local_lockres_recovery()
2096 spin_lock(&res->spinlock); in dlm_finish_local_lockres_recovery()
2099 dlm_change_lockres_owner(dlm, res, new_master); in dlm_finish_local_lockres_recovery()
2100 res->state &= ~DLM_LOCK_RES_RECOVERING; in dlm_finish_local_lockres_recovery()
2101 if (__dlm_lockres_has_locks(res)) in dlm_finish_local_lockres_recovery()
2102 __dlm_dirty_lockres(dlm, res); in dlm_finish_local_lockres_recovery()
2103 spin_unlock(&res->spinlock); in dlm_finish_local_lockres_recovery()
2104 wake_up(&res->wq); in dlm_finish_local_lockres_recovery()
2105 dlm_lockres_put(res); in dlm_finish_local_lockres_recovery()
2115 hlist_for_each_entry(res, bucket, hash_node) { in dlm_finish_local_lockres_recovery()
2116 if (!(res->state & DLM_LOCK_RES_RECOVERING)) in dlm_finish_local_lockres_recovery()
2119 if (res->owner != dead_node && in dlm_finish_local_lockres_recovery()
2120 res->owner != dlm->node_num) in dlm_finish_local_lockres_recovery()
2123 if (!list_empty(&res->recovering)) { in dlm_finish_local_lockres_recovery()
2124 list_del_init(&res->recovering); in dlm_finish_local_lockres_recovery()
2125 dlm_lockres_put(res); in dlm_finish_local_lockres_recovery()
2131 dlm->name, res->lockname.len, res->lockname.name, in dlm_finish_local_lockres_recovery()
2132 res->owner, new_master); in dlm_finish_local_lockres_recovery()
2133 spin_lock(&res->spinlock); in dlm_finish_local_lockres_recovery()
2134 dlm_change_lockres_owner(dlm, res, new_master); in dlm_finish_local_lockres_recovery()
2135 res->state &= ~DLM_LOCK_RES_RECOVERING; in dlm_finish_local_lockres_recovery()
2136 if (__dlm_lockres_has_locks(res)) in dlm_finish_local_lockres_recovery()
2137 __dlm_dirty_lockres(dlm, res); in dlm_finish_local_lockres_recovery()
2138 spin_unlock(&res->spinlock); in dlm_finish_local_lockres_recovery()
2139 wake_up(&res->wq); in dlm_finish_local_lockres_recovery()
2156 struct dlm_lock_resource *res, u8 dead_node) in dlm_revalidate_lvb() argument
2165 assert_spin_locked(&res->spinlock); in dlm_revalidate_lvb()
2167 if (res->owner == dlm->node_num) in dlm_revalidate_lvb()
2179 queue = dlm_list_idx_to_ptr(res, i); in dlm_revalidate_lvb()
2193 res->lockname.len, res->lockname.name, dead_node); in dlm_revalidate_lvb()
2194 memset(res->lvb, 0, DLM_LVB_LEN); in dlm_revalidate_lvb()
2199 struct dlm_lock_resource *res, u8 dead_node) in dlm_free_dead_locks() argument
2209 assert_spin_locked(&res->spinlock); in dlm_free_dead_locks()
2215 list_for_each_entry_safe(lock, next, &res->granted, list) { in dlm_free_dead_locks()
2224 list_for_each_entry_safe(lock, next, &res->converting, list) { in dlm_free_dead_locks()
2233 list_for_each_entry_safe(lock, next, &res->blocked, list) { in dlm_free_dead_locks()
2246 res->lockname.len, res->lockname.name, freed, dead_node); in dlm_free_dead_locks()
2247 if(!test_bit(dead_node, res->refmap)) { in dlm_free_dead_locks()
2250 res->lockname.len, res->lockname.name, freed, dead_node); in dlm_free_dead_locks()
2251 __dlm_print_one_lock_resource(res); in dlm_free_dead_locks()
2253 dlm_lockres_clear_refmap_bit(dlm, res, dead_node); in dlm_free_dead_locks()
2254 } else if (test_bit(dead_node, res->refmap)) { in dlm_free_dead_locks()
2257 res->lockname.len, res->lockname.name, dead_node); in dlm_free_dead_locks()
2258 dlm_lockres_clear_refmap_bit(dlm, res, dead_node); in dlm_free_dead_locks()
2262 __dlm_dirty_lockres(dlm, res); in dlm_free_dead_locks()
2274 struct dlm_lock_resource *res; in dlm_do_local_recovery_cleanup() local
2299 hlist_for_each_entry(res, bucket, hash_node) { in dlm_do_local_recovery_cleanup()
2302 if (dlm_is_recovery_lock(res->lockname.name, in dlm_do_local_recovery_cleanup()
2303 res->lockname.len)) { in dlm_do_local_recovery_cleanup()
2304 spin_lock(&res->spinlock); in dlm_do_local_recovery_cleanup()
2305 list_for_each_entry(lock, &res->granted, list) { in dlm_do_local_recovery_cleanup()
2316 spin_unlock(&res->spinlock); in dlm_do_local_recovery_cleanup()
2319 spin_lock(&res->spinlock); in dlm_do_local_recovery_cleanup()
2321 dlm_revalidate_lvb(dlm, res, dead_node); in dlm_do_local_recovery_cleanup()
2322 if (res->owner == dead_node) { in dlm_do_local_recovery_cleanup()
2323 if (res->state & DLM_LOCK_RES_DROPPING_REF) { in dlm_do_local_recovery_cleanup()
2326 dlm->name, res->lockname.len, in dlm_do_local_recovery_cleanup()
2327 res->lockname.name); in dlm_do_local_recovery_cleanup()
2330 res); in dlm_do_local_recovery_cleanup()
2332 } else if (res->owner == dlm->node_num) { in dlm_do_local_recovery_cleanup()
2333 dlm_free_dead_locks(dlm, res, dead_node); in dlm_do_local_recovery_cleanup()
2334 __dlm_lockres_calc_usage(dlm, res); in dlm_do_local_recovery_cleanup()
2336 spin_unlock(&res->spinlock); in dlm_do_local_recovery_cleanup()
2575 struct dlm_lock_resource *res; in dlm_pick_recovery_master() local
2581 res = dlm_lookup_lockres(dlm, DLM_RECOVERY_LOCK_NAME, in dlm_pick_recovery_master()
2583 if (res) { in dlm_pick_recovery_master()
2584 dlm_print_one_lock_resource(res); in dlm_pick_recovery_master()
2585 dlm_lockres_put(res); in dlm_pick_recovery_master()
2657 struct dlm_lock_resource *res; in dlm_send_begin_reco_message() local
2664 res = dlm_lookup_lockres(dlm, DLM_RECOVERY_LOCK_NAME, in dlm_send_begin_reco_message()
2666 if (res) { in dlm_send_begin_reco_message()
2667 dlm_print_one_lock_resource(res); in dlm_send_begin_reco_message()
2668 dlm_lockres_put(res); in dlm_send_begin_reco_message()