diff options
Diffstat (limited to 'fs/ocfs2/dlm/dlmdomain.c')
| -rw-r--r-- | fs/ocfs2/dlm/dlmdomain.c | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/fs/ocfs2/dlm/dlmdomain.c b/fs/ocfs2/dlm/dlmdomain.c index 6ed6b95dcf93..92f2ead0fab6 100644 --- a/fs/ocfs2/dlm/dlmdomain.c +++ b/fs/ocfs2/dlm/dlmdomain.c | |||
| @@ -157,16 +157,18 @@ static int dlm_protocol_compare(struct dlm_protocol_version *existing, | |||
| 157 | 157 | ||
| 158 | static void dlm_unregister_domain_handlers(struct dlm_ctxt *dlm); | 158 | static void dlm_unregister_domain_handlers(struct dlm_ctxt *dlm); |
| 159 | 159 | ||
| 160 | void __dlm_unhash_lockres(struct dlm_lock_resource *lockres) | 160 | void __dlm_unhash_lockres(struct dlm_ctxt *dlm, struct dlm_lock_resource *res) |
| 161 | { | 161 | { |
| 162 | if (!hlist_unhashed(&lockres->hash_node)) { | 162 | if (hlist_unhashed(&res->hash_node)) |
| 163 | hlist_del_init(&lockres->hash_node); | 163 | return; |
| 164 | dlm_lockres_put(lockres); | 164 | |
| 165 | } | 165 | mlog(0, "%s: Unhash res %.*s\n", dlm->name, res->lockname.len, |
| 166 | res->lockname.name); | ||
| 167 | hlist_del_init(&res->hash_node); | ||
| 168 | dlm_lockres_put(res); | ||
| 166 | } | 169 | } |
| 167 | 170 | ||
| 168 | void __dlm_insert_lockres(struct dlm_ctxt *dlm, | 171 | void __dlm_insert_lockres(struct dlm_ctxt *dlm, struct dlm_lock_resource *res) |
| 169 | struct dlm_lock_resource *res) | ||
| 170 | { | 172 | { |
| 171 | struct hlist_head *bucket; | 173 | struct hlist_head *bucket; |
| 172 | struct qstr *q; | 174 | struct qstr *q; |
| @@ -180,6 +182,9 @@ void __dlm_insert_lockres(struct dlm_ctxt *dlm, | |||
| 180 | dlm_lockres_get(res); | 182 | dlm_lockres_get(res); |
| 181 | 183 | ||
| 182 | hlist_add_head(&res->hash_node, bucket); | 184 | hlist_add_head(&res->hash_node, bucket); |
| 185 | |||
| 186 | mlog(0, "%s: Hash res %.*s\n", dlm->name, res->lockname.len, | ||
| 187 | res->lockname.name); | ||
| 183 | } | 188 | } |
| 184 | 189 | ||
| 185 | struct dlm_lock_resource * __dlm_lookup_lockres_full(struct dlm_ctxt *dlm, | 190 | struct dlm_lock_resource * __dlm_lookup_lockres_full(struct dlm_ctxt *dlm, |
| @@ -539,17 +544,17 @@ again: | |||
| 539 | 544 | ||
| 540 | static void __dlm_print_nodes(struct dlm_ctxt *dlm) | 545 | static void __dlm_print_nodes(struct dlm_ctxt *dlm) |
| 541 | { | 546 | { |
| 542 | int node = -1; | 547 | int node = -1, num = 0; |
| 543 | 548 | ||
| 544 | assert_spin_locked(&dlm->spinlock); | 549 | assert_spin_locked(&dlm->spinlock); |
| 545 | 550 | ||
| 546 | printk(KERN_NOTICE "o2dlm: Nodes in domain %s: ", dlm->name); | 551 | printk("( "); |
| 547 | |||
| 548 | while ((node = find_next_bit(dlm->domain_map, O2NM_MAX_NODES, | 552 | while ((node = find_next_bit(dlm->domain_map, O2NM_MAX_NODES, |
| 549 | node + 1)) < O2NM_MAX_NODES) { | 553 | node + 1)) < O2NM_MAX_NODES) { |
| 550 | printk("%d ", node); | 554 | printk("%d ", node); |
| 555 | ++num; | ||
| 551 | } | 556 | } |
| 552 | printk("\n"); | 557 | printk(") %u nodes\n", num); |
| 553 | } | 558 | } |
| 554 | 559 | ||
| 555 | static int dlm_exit_domain_handler(struct o2net_msg *msg, u32 len, void *data, | 560 | static int dlm_exit_domain_handler(struct o2net_msg *msg, u32 len, void *data, |
| @@ -566,11 +571,10 @@ static int dlm_exit_domain_handler(struct o2net_msg *msg, u32 len, void *data, | |||
| 566 | 571 | ||
| 567 | node = exit_msg->node_idx; | 572 | node = exit_msg->node_idx; |
| 568 | 573 | ||
| 569 | printk(KERN_NOTICE "o2dlm: Node %u leaves domain %s\n", node, dlm->name); | ||
| 570 | |||
| 571 | spin_lock(&dlm->spinlock); | 574 | spin_lock(&dlm->spinlock); |
| 572 | clear_bit(node, dlm->domain_map); | 575 | clear_bit(node, dlm->domain_map); |
| 573 | clear_bit(node, dlm->exit_domain_map); | 576 | clear_bit(node, dlm->exit_domain_map); |
| 577 | printk(KERN_NOTICE "o2dlm: Node %u leaves domain %s ", node, dlm->name); | ||
| 574 | __dlm_print_nodes(dlm); | 578 | __dlm_print_nodes(dlm); |
| 575 | 579 | ||
| 576 | /* notify anything attached to the heartbeat events */ | 580 | /* notify anything attached to the heartbeat events */ |
| @@ -755,6 +759,7 @@ void dlm_unregister_domain(struct dlm_ctxt *dlm) | |||
| 755 | 759 | ||
| 756 | dlm_mark_domain_leaving(dlm); | 760 | dlm_mark_domain_leaving(dlm); |
| 757 | dlm_leave_domain(dlm); | 761 | dlm_leave_domain(dlm); |
| 762 | printk(KERN_NOTICE "o2dlm: Leaving domain %s\n", dlm->name); | ||
| 758 | dlm_force_free_mles(dlm); | 763 | dlm_force_free_mles(dlm); |
| 759 | dlm_complete_dlm_shutdown(dlm); | 764 | dlm_complete_dlm_shutdown(dlm); |
| 760 | } | 765 | } |
| @@ -970,7 +975,7 @@ static int dlm_assert_joined_handler(struct o2net_msg *msg, u32 len, void *data, | |||
| 970 | clear_bit(assert->node_idx, dlm->exit_domain_map); | 975 | clear_bit(assert->node_idx, dlm->exit_domain_map); |
| 971 | __dlm_set_joining_node(dlm, DLM_LOCK_RES_OWNER_UNKNOWN); | 976 | __dlm_set_joining_node(dlm, DLM_LOCK_RES_OWNER_UNKNOWN); |
| 972 | 977 | ||
| 973 | printk(KERN_NOTICE "o2dlm: Node %u joins domain %s\n", | 978 | printk(KERN_NOTICE "o2dlm: Node %u joins domain %s ", |
| 974 | assert->node_idx, dlm->name); | 979 | assert->node_idx, dlm->name); |
| 975 | __dlm_print_nodes(dlm); | 980 | __dlm_print_nodes(dlm); |
| 976 | 981 | ||
| @@ -1701,8 +1706,10 @@ static int dlm_try_to_join_domain(struct dlm_ctxt *dlm) | |||
| 1701 | bail: | 1706 | bail: |
| 1702 | spin_lock(&dlm->spinlock); | 1707 | spin_lock(&dlm->spinlock); |
| 1703 | __dlm_set_joining_node(dlm, DLM_LOCK_RES_OWNER_UNKNOWN); | 1708 | __dlm_set_joining_node(dlm, DLM_LOCK_RES_OWNER_UNKNOWN); |
| 1704 | if (!status) | 1709 | if (!status) { |
| 1710 | printk(KERN_NOTICE "o2dlm: Joining domain %s ", dlm->name); | ||
| 1705 | __dlm_print_nodes(dlm); | 1711 | __dlm_print_nodes(dlm); |
| 1712 | } | ||
| 1706 | spin_unlock(&dlm->spinlock); | 1713 | spin_unlock(&dlm->spinlock); |
| 1707 | 1714 | ||
| 1708 | if (ctxt) { | 1715 | if (ctxt) { |
| @@ -2131,13 +2138,6 @@ struct dlm_ctxt * dlm_register_domain(const char *domain, | |||
| 2131 | goto leave; | 2138 | goto leave; |
| 2132 | } | 2139 | } |
| 2133 | 2140 | ||
| 2134 | if (!o2hb_check_local_node_heartbeating()) { | ||
| 2135 | mlog(ML_ERROR, "the local node has not been configured, or is " | ||
| 2136 | "not heartbeating\n"); | ||
| 2137 | ret = -EPROTO; | ||
| 2138 | goto leave; | ||
| 2139 | } | ||
| 2140 | |||
| 2141 | mlog(0, "register called for domain \"%s\"\n", domain); | 2141 | mlog(0, "register called for domain \"%s\"\n", domain); |
| 2142 | 2142 | ||
| 2143 | retry: | 2143 | retry: |
