ocfs2/dlm: modify DLM_QUERY_NODEINFO message to adapt IPv6 node
PATCH 4/5 ocfs2/dlm: modify DLM_QUERY_NODEINFO message to adapt IPv6 node
Add IPv6 node info to dlm_query_nodeinfo, and distinguish with IPv4 by qn_ipnet_type. DLM_QUERY_NODEINFO message is compitibile with the old version.
Signed-off-by Jun Piao <[email protected]>
--- fs/ocfs2/cluster/tcp.c | 6 ++-- fs/ocfs2/cluster/tcp.h | 2 +- fs/ocfs2/dlm/dlmcommon.h | 12 +++++-- fs/ocfs2/dlm/dlmdomain.c | 93 ++++++++++++++++++++++++++++++++++-------------- 4 files changed, 80 insertions(+), 33 deletions(-)
fs/ocfs2/cluster/tcp.c +3 -3
@@ -409,7 +409,7 @@ static void sc_kref_release(struct kref *kref)o2net_debug_del_sc (sc);if (sc->sc_page) -__free_page (sc->sc_page); +__free_pages (sc->sc_page,1 );kfree (sc); }
@@ -429,7 +429,7 @@ static struct o2net_sock_container *sc_alloc(struct o2nm_node *node)struct page *page =NULL ;int status =0 ; - page =alloc_page (GFP_NOFS ); + page =alloc_pages (GFP_NOFS ,1 ); sc =kzalloc (sizeof (*sc),GFP_NOFS );if (sc ==NULL || page ==NULL ) goto out;
@@ -462,7 +462,7 @@ static struct o2net_sock_container *sc_alloc(struct o2nm_node *node) out:if (page) -__free_page (page); +__free_pages (page,1 );kfree (sc);return ret;
fs/ocfs2/cluster/tcp.h +1 -1
@@ -55,7 +55,7 @@ typedef int (o2net_msg_handler_func)(struct o2net_msg *msg, u32 len, void *data,typedef void (o2net_post_msg_handler_func )(int status,void *data,void *ret_data); -#define O2NET_MAX_PAYLOAD_BYTES (4096 - sizeof(struct o2net_msg)) +#define O2NET_MAX_PAYLOAD_BYTES (4096 * 2 - sizeof(struct o2net_msg))/* same as hb delay, we're waiting for another node to recognize our hb */ #define O2NET_RECONNECT_DELAY_MS_DEFAULT 2000
fs/ocfs2/dlm/dlmcommon.h +9 -3
@@ -747,15 +747,21 @@ struct dlm_query_region {struct dlm_node_info {u8 ni_nodenum;u8 pad1; -__be16 ni_ipv4_port; -__be32 ni_ipv4_address; +union { +__be16 ni_ipv4_port; +__be16 ni_ipv6_port; + } ip_port; +union { +__be32 ni_ipv4_address; +u8 ni_ipv6_address[16 ]; + } ip_addr; };struct dlm_query_nodeinfo {u8 qn_nodenum;u8 qn_numnodes;u8 qn_namelen; -u8 pad1; +u8 qn_ipnet_type;/* 0-IPv4, 1-IPv6 */ u8 qn_domain[O2NM_MAX_NAME_LEN ];struct dlm_node_info qn_nodes[O2NM_MAX_NODES ]; };
fs/ocfs2/dlm/dlmdomain.c +67 -26
115 lines not on this page · raw message