Skip to contentSkip to conversation

SUNRPC: Fix some compiler warnings in xprtsock.c

PATCH In review Chuck Lever 1 participant 1 message May 25, 2007

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 8/10 SUNRPC: Fix some compiler warnings in xprtsock.c

---

 net/sunrpc/xprtsock.c |   20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)
net/sunrpc/xprtsock.c +15 -5
index dd2a9db..d08a151 100644
@@ -302,7 +302,9 @@ static void xs_free_peer_addresses(struct rpc_xprt *xprt)
 
 #define XS_SENDMSG_FLAGS	(MSG_DONTWAIT | MSG_NOSIGNAL)
 
-static int xs_send_kvec(struct socket *sock, struct sockaddr *addr, int addrlen, struct kvec *vec, unsigned int base, int more)
+static int xs_send_kvec(struct socket *sock, struct sockaddr *addr,
+			int addrlen, struct kvec *vec, unsigned int base,
+			int more)
 {
 	struct msghdr msg = {
 		.msg_name	= addr,
@@ -363,7 +365,8 @@ static int xs_send_pagedata(struct socket *sock, struct xdr_buf *xdr,
  * @base: starting position in the buffer
  *
  */
-static int xs_sendpages(struct socket *sock, struct sockaddr *addr, int addrlen, struct xdr_buf *xdr, unsigned int base)
+static int xs_sendpages(struct socket *sock, struct sockaddr *addr,
+			int addrlen, struct xdr_buf *xdr, unsigned int base)
 {
 	unsigned int remainder = xdr->len - base;
 	int err, sent = 0;
@@ -380,8 +383,12 @@ static int xs_sendpages(struct socket *sock, struct sockaddr *addr, int addrlen,
 	if (base < xdr->head[0].iov_len || addr != NULL) {
 		unsigned int len = xdr->head[0].iov_len - base;
 		remainder -= len;
-		err = xs_send_kvec(sock, addr, addrlen, &xdr->head[0], base, remainder != 0);
-		if (remainder == 0 || err != len)
+		err = xs_send_kvec(sock, addr, addrlen, &xdr->head[0],
+				   base, remainder != 0);
+		if (err < 0 || (unsigned int)err != len)
+			goto out;
+
+		if (remainder == 0)
 			goto out;
 		sent += err;
 		base = 0;
@@ -392,7 +399,10 @@ static int xs_sendpages(struct socket *sock, struct sockaddr *addr, int addrlen,
 		unsigned int len = xdr->page_len - base;
 		remainder -= len;
 		err = xs_send_pagedata(sock, xdr, base, remainder != 0);
-		if (remainder == 0 || err != len)
+		if (err < 0 || (unsigned int)err != len)
+			goto out;
+
+		if (remainder == 0)
 			goto out;
 		sent += err;
 		base = 0;

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs