[Ocfs2-commits] zab commits r2519 - in trunk/fs/ocfs2: cluster dlm

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Tue Aug 16 18:15:30 CDT 2005


Author: zab
Signed-off-by: manish
Date: 2005-08-16 18:15:28 -0500 (Tue, 16 Aug 2005)
New Revision: 2519

Modified:
   trunk/fs/ocfs2/cluster/tcp.c
   trunk/fs/ocfs2/cluster/tcp.h
   trunk/fs/ocfs2/dlm/dlmast.c
   trunk/fs/ocfs2/dlm/dlmconvert.c
   trunk/fs/ocfs2/dlm/dlmunlock.c
Log:
o use kvecs for the kernel vectored apis instead of iovecs, with their __user
  iov_base,  to quiet some -Wbitwise errors

Signed-off-by: manish


Modified: trunk/fs/ocfs2/cluster/tcp.c
===================================================================
--- trunk/fs/ocfs2/cluster/tcp.c	2005-08-15 21:13:42 UTC (rev 2518)
+++ trunk/fs/ocfs2/cluster/tcp.c	2005-08-16 23:15:28 UTC (rev 2519)
@@ -760,13 +760,13 @@
 {
 	int ret;
 	mm_segment_t oldfs;
-	struct iovec iov = {
+	struct kvec vec = {
 		.iov_len = len,
-		.iov_base = data
+		.iov_base = data,
 	};
 	struct msghdr msg = {
 		.msg_iovlen = 1,
-		.msg_iov = &iov,
+		.msg_iov = (struct iovec *)&vec,
        		.msg_flags = MSG_DONTWAIT,
 	};
 
@@ -778,14 +778,14 @@
 	return ret;
 }
 
-static int o2net_send_tcp_msg(struct socket *sock, struct iovec *iov,
-			      size_t iovlen, size_t total)
+static int o2net_send_tcp_msg(struct socket *sock, struct kvec *vec,
+			      size_t veclen, size_t total)
 {
 	int ret;
 	mm_segment_t oldfs;
 	struct msghdr msg = {
-		.msg_iov = iov,
-		.msg_iovlen = iovlen,
+		.msg_iov = (struct iovec *)vec,
+		.msg_iovlen = veclen,
 	};
 
 	if (sock == NULL) {
@@ -865,13 +865,13 @@
 	return ret;
 }
 
-int o2net_send_message_iov(u32 msg_type, u32 key, struct iovec *caller_iov,
-			   size_t caller_iovlen, u8 target_node, int *status)
+int o2net_send_message_vec(u32 msg_type, u32 key, struct kvec *caller_vec,
+			   size_t caller_veclen, u8 target_node, int *status)
 {
 	int ret, error = 0;
 	o2net_msg *msg = NULL;
-	size_t iovlen, caller_bytes = 0;
-	struct iovec *iov = NULL;
+	size_t veclen, caller_bytes = 0;
+	struct kvec *vec = NULL;
 	struct o2net_sock_container *sc = NULL;
 	struct o2net_node *nn = o2net_nn_from_num(target_node);
 	struct o2net_status_wait nsw = {
@@ -891,13 +891,13 @@
 		goto out;
 	}
 
-	if (caller_iovlen == 0) {
-		mlog(0, "bad iovec array length\n");
+	if (caller_veclen == 0) {
+		mlog(0, "bad kvec array length\n");
 		ret = -EINVAL;
 		goto out;
 	}
 
-	caller_bytes = iov_length(caller_iov, caller_iovlen);
+	caller_bytes = iov_length((struct iovec *)caller_vec, caller_veclen);
 	if (caller_bytes > O2NET_MAX_PAYLOAD_BYTES) {
 		mlog(0, "total payload len %zu too large\n", caller_bytes);
 		ret = -EINVAL;
@@ -921,11 +921,10 @@
 
 	nst.st_sc = sc;
 
-	/* build up our iovec */
-	iovlen = caller_iovlen + 1;
-	iov = kmalloc(sizeof(struct iovec) * iovlen, GFP_KERNEL);
-	if (iov == NULL) {
-		mlog(0, "failed to %zu element iovec!\n", iovlen);
+	veclen = caller_veclen + 1;
+	vec = kmalloc(sizeof(struct kvec) * veclen, GFP_KERNEL);
+	if (vec == NULL) {
+		mlog(0, "failed to %zu element kvec!\n", veclen);
 		ret = -ENOMEM;
 		goto out;
 	}
@@ -939,9 +938,9 @@
 
 	o2net_init_msg(msg, caller_bytes, msg_type, key);
 
-	iov[0].iov_len = sizeof(o2net_msg);
-	iov[0].iov_base = msg;
-	memcpy(&iov[1], caller_iov, caller_iovlen * sizeof(struct iovec));
+	vec[0].iov_len = sizeof(o2net_msg);
+	vec[0].iov_base = msg;
+	memcpy(&vec[1], caller_vec, caller_veclen * sizeof(struct kvec));
 
 	ret = o2net_prep_nsw(nn, &nsw);
 	if (ret)
@@ -952,7 +951,7 @@
 	do_gettimeofday(&nst.st_send_time);
 	/* finally, convert the message header to network byte-order
 	 * and send */
-	ret = o2net_send_tcp_msg(sc->sc_sock, iov, iovlen,
+	ret = o2net_send_tcp_msg(sc->sc_sock, vec, veclen,
 				 sizeof(o2net_msg) + caller_bytes);
 	msglog(msg, "sending returned %d\n", ret);
 	if (ret < 0) {
@@ -977,23 +976,23 @@
 	o2net_proc_del_nst(&nst); /* must be before dropping sc and node */
 	if (sc)
 		sc_put(sc);
-	if (iov)
-		kfree(iov);
+	if (vec)
+		kfree(vec);
 	if (msg)
 		kfree(msg);
 	o2net_complete_nsw(nn, &nsw, 0, 0, 0);
 	return ret;
 }
-EXPORT_SYMBOL_GPL(o2net_send_message_iov);
+EXPORT_SYMBOL_GPL(o2net_send_message_vec);
 
 int o2net_send_message(u32 msg_type, u32 key, void *data, u32 len,
 		       u8 target_node, int *status)
 {
-	struct iovec iov = {
+	struct kvec vec = {
 		.iov_base = data,
 		.iov_len = len,
 	};
-	return o2net_send_message_iov(msg_type, key, &iov, 1,
+	return o2net_send_message_vec(msg_type, key, &vec, 1,
 				      target_node, status);
 }
 EXPORT_SYMBOL_GPL(o2net_send_message);
@@ -1001,7 +1000,7 @@
 static int o2net_send_status_magic(struct socket *sock, o2net_msg *hdr,
 				   enum o2net_system_error syserr, int err)
 {
-	struct iovec iov = {
+	struct kvec vec = {
 		.iov_base = hdr,
 		.iov_len = sizeof(o2net_msg),
 	};
@@ -1017,7 +1016,7 @@
 
 	msglog(hdr, "about to send status magic %d\n", err);
 	/* hdr has been in host byteorder this whole time */
-	return o2net_send_tcp_msg(sock, &iov, 1, sizeof(o2net_msg));
+	return o2net_send_tcp_msg(sock, &vec, 1, sizeof(o2net_msg));
 }
 
 /* this returns -errno if the header was unknown or too large, etc.

Modified: trunk/fs/ocfs2/cluster/tcp.h
===================================================================
--- trunk/fs/ocfs2/cluster/tcp.h	2005-08-15 21:13:42 UTC (rev 2518)
+++ trunk/fs/ocfs2/cluster/tcp.h	2005-08-16 23:15:28 UTC (rev 2519)
@@ -88,8 +88,8 @@
 int o2net_init_tcp_sock(struct inode *inode);
 int o2net_send_message(u32 msg_type, u32 key, void *data, u32 len,
 		       u8 target_node, int *status);
-int o2net_send_message_iov(u32 msg_type, u32 key, struct iovec *iov,
-			   size_t iovlen, u8 target_node, int *status);
+int o2net_send_message_vec(u32 msg_type, u32 key, struct kvec *vec,
+			   size_t veclen, u8 target_node, int *status);
 int o2net_broadcast_message(u32 msg_type, u32 key, void *data, u32 len,
 			    struct inode *group);
 

Modified: trunk/fs/ocfs2/dlm/dlmast.c
===================================================================
--- trunk/fs/ocfs2/dlm/dlmast.c	2005-08-15 21:13:42 UTC (rev 2518)
+++ trunk/fs/ocfs2/dlm/dlmast.c	2005-08-16 23:15:28 UTC (rev 2519)
@@ -399,8 +399,8 @@
 {
 	int ret = 0;
 	struct dlm_proxy_ast past;
-	struct iovec iov[2];
-	size_t iovlen = 1;
+	struct kvec vec[2];
+	size_t veclen = 1;
 	int status;
 
 	mlog_entry("res %.*s, to=%u, type=%d, blocked_type=%d\n",
@@ -415,17 +415,17 @@
 	memcpy(past.name, res->lockname.name, past.namelen);
 	past.cookie = lock->ml.cookie;
 
-	iov[0].iov_len = sizeof(struct dlm_proxy_ast);
-	iov[0].iov_base = &past;
+	vec[0].iov_len = sizeof(struct dlm_proxy_ast);
+	vec[0].iov_base = &past;
 	if (flags & DLM_LKSB_GET_LVB) {
 		mlog(0, "returning requested LVB data\n");
 		be32_add_cpu(&past.flags, LKM_GET_LVB);
-		iov[1].iov_len = DLM_LVB_LEN;
-		iov[1].iov_base = lock->lksb->lvb;
-		iovlen++;
+		vec[1].iov_len = DLM_LVB_LEN;
+		vec[1].iov_base = lock->lksb->lvb;
+		veclen++;
 	}
 
-	ret = o2net_send_message_iov(DLM_PROXY_AST_MSG, dlm->key, iov, iovlen,
+	ret = o2net_send_message_vec(DLM_PROXY_AST_MSG, dlm->key, vec, veclen,
 				     lock->ml.node, &status);
 	if (ret < 0)
 		mlog_errno(ret);

Modified: trunk/fs/ocfs2/dlm/dlmconvert.c
===================================================================
--- trunk/fs/ocfs2/dlm/dlmconvert.c	2005-08-15 21:13:42 UTC (rev 2518)
+++ trunk/fs/ocfs2/dlm/dlmconvert.c	2005-08-16 23:15:28 UTC (rev 2519)
@@ -347,8 +347,8 @@
 	int tmpret;
 	enum dlm_status ret;
 	int status = 0;
-	struct iovec iov[2];
-	size_t iovlen = 1;
+	struct kvec vec[2];
+	size_t veclen = 1;
 
 	mlog_entry("%.*s\n", res->lockname.len, res->lockname.name);
 
@@ -360,18 +360,18 @@
 	convert.flags = cpu_to_be32(flags);
 	memcpy(convert.name, res->lockname.name, convert.namelen);
 
-	iov[0].iov_len = sizeof(struct dlm_convert_lock);
-	iov[0].iov_base = &convert;
+	vec[0].iov_len = sizeof(struct dlm_convert_lock);
+	vec[0].iov_base = &convert;
 
 	if (flags & LKM_PUT_LVB) {
 		/* extra data to send if we are updating lvb */
-		iov[1].iov_len = DLM_LVB_LEN;
-		iov[1].iov_base = lock->lksb->lvb;
-		iovlen++;
+		vec[1].iov_len = DLM_LVB_LEN;
+		vec[1].iov_base = lock->lksb->lvb;
+		veclen++;
 	}
 
-	tmpret = o2net_send_message_iov(DLM_CONVERT_LOCK_MSG, dlm->key,
-					iov, iovlen, res->owner, &status);
+	tmpret = o2net_send_message_vec(DLM_CONVERT_LOCK_MSG, dlm->key,
+					vec, veclen, res->owner, &status);
 	if (tmpret >= 0) {
 		// successfully sent and received
 		ret = status;  // this is already a dlm_status

Modified: trunk/fs/ocfs2/dlm/dlmunlock.c
===================================================================
--- trunk/fs/ocfs2/dlm/dlmunlock.c	2005-08-15 21:13:42 UTC (rev 2518)
+++ trunk/fs/ocfs2/dlm/dlmunlock.c	2005-08-16 23:15:28 UTC (rev 2519)
@@ -299,8 +299,8 @@
 	int tmpret;
 	enum dlm_status ret;
 	int status = 0;
-	struct iovec iov[2];
-	size_t iovlen = 1;
+	struct kvec vec[2];
+	size_t veclen = 1;
 
 	mlog_entry("%.*s\n", res->lockname.len, res->lockname.name);
 
@@ -311,18 +311,18 @@
 	unlock.namelen = res->lockname.len;
 	memcpy(unlock.name, res->lockname.name, unlock.namelen);
 
-	iov[0].iov_len = sizeof(struct dlm_unlock_lock);
-	iov[0].iov_base = &unlock;
+	vec[0].iov_len = sizeof(struct dlm_unlock_lock);
+	vec[0].iov_base = &unlock;
 
 	if (flags & LKM_PUT_LVB) {
 		/* extra data to send if we are updating lvb */
-		iov[1].iov_len = DLM_LVB_LEN;
-		iov[1].iov_base = lock->lksb->lvb;
-		iovlen++;
+		vec[1].iov_len = DLM_LVB_LEN;
+		vec[1].iov_base = lock->lksb->lvb;
+		veclen++;
 	}
 
-	tmpret = o2net_send_message_iov(DLM_UNLOCK_LOCK_MSG, dlm->key,
-					iov, iovlen, owner, &status);
+	tmpret = o2net_send_message_vec(DLM_UNLOCK_LOCK_MSG, dlm->key,
+					vec, veclen, owner, &status);
 	if (tmpret >= 0) {
 		// successfully sent and received
 		if (status == DLM_CANCELGRANT)



More information about the Ocfs2-commits mailing list