aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/cluster/tcp.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ocfs2/cluster/tcp.c')
-rw-r--r--fs/ocfs2/cluster/tcp.c60
1 files changed, 32 insertions, 28 deletions
diff --git a/fs/ocfs2/cluster/tcp.c b/fs/ocfs2/cluster/tcp.c
index d644dc611425..2cd2406b4140 100644
--- a/fs/ocfs2/cluster/tcp.c
+++ b/fs/ocfs2/cluster/tcp.c
@@ -543,8 +543,9 @@ static void o2net_set_nn_state(struct o2net_node *nn,
543 } 543 }
544 544
545 if (was_valid && !valid) { 545 if (was_valid && !valid) {
546 printk(KERN_NOTICE "o2net: No longer connected to " 546 if (old_sc)
547 SC_NODEF_FMT "\n", SC_NODEF_ARGS(old_sc)); 547 printk(KERN_NOTICE "o2net: No longer connected to "
548 SC_NODEF_FMT "\n", SC_NODEF_ARGS(old_sc));
548 o2net_complete_nodes_nsw(nn); 549 o2net_complete_nodes_nsw(nn);
549 } 550 }
550 551
@@ -765,32 +766,32 @@ static struct o2net_msg_handler *
765o2net_handler_tree_lookup(u32 msg_type, u32 key, struct rb_node ***ret_p, 766o2net_handler_tree_lookup(u32 msg_type, u32 key, struct rb_node ***ret_p,
766 struct rb_node **ret_parent) 767 struct rb_node **ret_parent)
767{ 768{
768 struct rb_node **p = &o2net_handler_tree.rb_node; 769 struct rb_node **p = &o2net_handler_tree.rb_node;
769 struct rb_node *parent = NULL; 770 struct rb_node *parent = NULL;
770 struct o2net_msg_handler *nmh, *ret = NULL; 771 struct o2net_msg_handler *nmh, *ret = NULL;
771 int cmp; 772 int cmp;
772 773
773 while (*p) { 774 while (*p) {
774 parent = *p; 775 parent = *p;
775 nmh = rb_entry(parent, struct o2net_msg_handler, nh_node); 776 nmh = rb_entry(parent, struct o2net_msg_handler, nh_node);
776 cmp = o2net_handler_cmp(nmh, msg_type, key); 777 cmp = o2net_handler_cmp(nmh, msg_type, key);
777 778
778 if (cmp < 0) 779 if (cmp < 0)
779 p = &(*p)->rb_left; 780 p = &(*p)->rb_left;
780 else if (cmp > 0) 781 else if (cmp > 0)
781 p = &(*p)->rb_right; 782 p = &(*p)->rb_right;
782 else { 783 else {
783 ret = nmh; 784 ret = nmh;
784 break; 785 break;
785 } 786 }
786 } 787 }
787 788
788 if (ret_p != NULL) 789 if (ret_p != NULL)
789 *ret_p = p; 790 *ret_p = p;
790 if (ret_parent != NULL) 791 if (ret_parent != NULL)
791 *ret_parent = parent; 792 *ret_parent = parent;
792 793
793 return ret; 794 return ret;
794} 795}
795 796
796static void o2net_handler_kref_release(struct kref *kref) 797static void o2net_handler_kref_release(struct kref *kref)
@@ -1695,13 +1696,12 @@ static void o2net_start_connect(struct work_struct *work)
1695 ret = 0; 1696 ret = 0;
1696 1697
1697out: 1698out:
1698 if (ret) { 1699 if (ret && sc) {
1699 printk(KERN_NOTICE "o2net: Connect attempt to " SC_NODEF_FMT 1700 printk(KERN_NOTICE "o2net: Connect attempt to " SC_NODEF_FMT
1700 " failed with errno %d\n", SC_NODEF_ARGS(sc), ret); 1701 " failed with errno %d\n", SC_NODEF_ARGS(sc), ret);
1701 /* 0 err so that another will be queued and attempted 1702 /* 0 err so that another will be queued and attempted
1702 * from set_nn_state */ 1703 * from set_nn_state */
1703 if (sc) 1704 o2net_ensure_shutdown(nn, sc, 0);
1704 o2net_ensure_shutdown(nn, sc, 0);
1705 } 1705 }
1706 if (sc) 1706 if (sc)
1707 sc_put(sc); 1707 sc_put(sc);
@@ -1873,12 +1873,16 @@ static int o2net_accept_one(struct socket *sock)
1873 1873
1874 if (o2nm_this_node() >= node->nd_num) { 1874 if (o2nm_this_node() >= node->nd_num) {
1875 local_node = o2nm_get_node_by_num(o2nm_this_node()); 1875 local_node = o2nm_get_node_by_num(o2nm_this_node());
1876 printk(KERN_NOTICE "o2net: Unexpected connect attempt seen " 1876 if (local_node)
1877 "at node '%s' (%u, %pI4:%d) from node '%s' (%u, " 1877 printk(KERN_NOTICE "o2net: Unexpected connect attempt "
1878 "%pI4:%d)\n", local_node->nd_name, local_node->nd_num, 1878 "seen at node '%s' (%u, %pI4:%d) from "
1879 &(local_node->nd_ipv4_address), 1879 "node '%s' (%u, %pI4:%d)\n",
1880 ntohs(local_node->nd_ipv4_port), node->nd_name, 1880 local_node->nd_name, local_node->nd_num,
1881 node->nd_num, &sin.sin_addr.s_addr, ntohs(sin.sin_port)); 1881 &(local_node->nd_ipv4_address),
1882 ntohs(local_node->nd_ipv4_port),
1883 node->nd_name,
1884 node->nd_num, &sin.sin_addr.s_addr,
1885 ntohs(sin.sin_port));
1882 ret = -EINVAL; 1886 ret = -EINVAL;
1883 goto out; 1887 goto out;
1884 } 1888 }