summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Brown <neilb@cse.unsw.edu.au>2003-05-20 06:20:07 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2003-05-20 06:20:07 -0700
commit4690a87a5cd54d3b520c067b98f8cd26a95c57e7 (patch)
tree844feca21bcb3d0c1055c95a026b9c5a864ce5e1
parent9f6320547365d254d61b29a5d606b0531718fd0e (diff)
[PATCH] kNFSd: Set SOCK_NOSPACE when RPC server decides there is insufficient.
SOCK_NOSPACE is set, so we must set it when we want to get a ->write_space callback.
-rw-r--r--net/sunrpc/svcsock.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index e0016af3fca6..104c6ad5188d 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -166,6 +166,7 @@ svc_sock_enqueue(struct svc_sock *svsk)
goto out_unlock;
}
+ set_bit(SOCK_NOSPACE, &svsk->sk_sock->flags);
if (((svsk->sk_reserved + serv->sv_bufsz)*2
> svc_sock_wspace(svsk))
&& !test_bit(SK_CLOSE, &svsk->sk_flags)
@@ -176,6 +177,7 @@ svc_sock_enqueue(struct svc_sock *svsk)
svc_sock_wspace(svsk));
goto out_unlock;
}
+ clear_bit(SOCK_NOSPACE, &svsk->sk_sock->flags);
/* Mark socket as busy. It will remain in this state until the
* server has processed all pending data and put the socket back