diff options
author | Gerrit Renker <gerrit@erg.abdn.ac.uk> | 2007-09-26 19:36:08 -0300 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-10 16:52:45 -0700 |
commit | cecd8d0ec4cb4fec728f67163bb0a78f80c292eb (patch) | |
tree | 0203cb30479143463cb2228ef872be2f1e10ddec | |
parent | e356d37a096a990ea1a74c44c15640122e56110b (diff) | |
download | op-kernel-dev-cecd8d0ec4cb4fec728f67163bb0a78f80c292eb.zip op-kernel-dev-cecd8d0ec4cb4fec728f67163bb0a78f80c292eb.tar.gz |
[DCCP]: Reduce the number of writable states
Since DCCP requires to close both ends of a connection simultaneously,
permission to write in state DCCP_CLOSING is removed in dccp_sendmsg():
* if the sending end closed, it would encounter a write error anyhow;
* if the other end has closed the connection, it accepts no more data.
Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
-rw-r--r-- | net/dccp/proto.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/dccp/proto.c b/net/dccp/proto.c index 604de8b..7e4f54a 100644 --- a/net/dccp/proto.c +++ b/net/dccp/proto.c @@ -664,7 +664,7 @@ int dccp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, * so that the trick in dccp_rcv_request_sent_state_process. */ /* Wait for a connection to finish. */ - if ((1 << sk->sk_state) & ~(DCCPF_OPEN | DCCPF_PARTOPEN | DCCPF_CLOSING)) + if ((1 << sk->sk_state) & ~(DCCPF_OPEN | DCCPF_PARTOPEN)) if ((rc = sk_stream_wait_connect(sk, &timeo)) != 0) goto out_release; |