diff options
Diffstat (limited to 'fs/ocfs2/cluster/tcp.c')
-rw-r--r-- | fs/ocfs2/cluster/tcp.c | 60 |
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 * | |||
765 | o2net_handler_tree_lookup(u32 msg_type, u32 key, struct rb_node ***ret_p, | 766 | o2net_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 | ||
796 | static void o2net_handler_kref_release(struct kref *kref) | 797 | static 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 | ||
1697 | out: | 1698 | out: |
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 | } |