summary refs log tree commit diff
path: root/net/tipc/socket.c
diff options
context:
space:
mode:
authorAllan Stephens <allan.stephens@windriver.com>2006-06-25 23:45:53 -0700
committerDavid S. Miller <davem@davemloft.net>2006-06-25 23:45:53 -0700
commitbdd94789d2348e20d13c1d5e477c8cf830dd204b (patch)
tree14726d6f25d20e7e84f26e4c834e3187e017deaa /net/tipc/socket.c
parent3546c7508d7e97fd855f8ac37afdd09622fa5ce1 (diff)
downloadlinux-bdd94789d2348e20d13c1d5e477c8cf830dd204b.tar.gz
[TIPC]: Connected send now checks socket state when retrying congested send.
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Per Liden <per.liden@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc/socket.c')
-rw-r--r--net/tipc/socket.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/net/tipc/socket.c b/net/tipc/socket.c
index 361dc342f377..9c834fc30112 100644
--- a/net/tipc/socket.c
+++ b/net/tipc/socket.c
@@ -565,15 +565,15 @@ static int send_packet(struct kiocb *iocb, struct socket *sock,
 		return -ERESTARTSYS;
         }
 
-        if (unlikely(sock->state != SS_CONNECTED)) {
-                if (sock->state == SS_DISCONNECTING)
-                        res = -EPIPE;   
-                else
-                        res = -ENOTCONN;
-                goto exit;
-        }
-
         do {
+		if (unlikely(sock->state != SS_CONNECTED)) {
+			if (sock->state == SS_DISCONNECTING)
+				res = -EPIPE;   
+			else
+				res = -ENOTCONN;
+			goto exit;
+		}
+
                 res = tipc_send(tsock->p->ref, m->msg_iovlen, m->msg_iov);
                 if (likely(res != -ELINKCONG)) {
 exit: