[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