summaryrefslogtreecommitdiffstats
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
linux-bdd94789d2348e20d13c1d5e477c8cf830dd204b.tar.bz2
linux-bdd94789d2348e20d13c1d5e477c8cf830dd204b.zip
[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: