* [PATCH] Correctly close old nfsd/lockd sockets.
@ 2007-09-14 14:28 J. Bruce Fields
0 siblings, 0 replies; only message in thread
From: J. Bruce Fields @ 2007-09-14 14:28 UTC (permalink / raw)
To: Linus Torvalds, stable; +Cc: Neil Brown, trond.myklebust, nfs, linux-kernel
From: Neil Brown <neilb@suse.de>
Commit aaf68cfbf2241d24d46583423f6bff5c47e088b3 added a bias
to sk_inuse, so this test for an unused socket now fails. So no
sockets get closed because they are old (they might get closed
if the client closed them).
This bug has existed since 2.6.21-rc1.
Thanks to Wolfgang Walter for finding and reporting the bug.
Cc: Wolfgang Walter <wolfgang.walter@studentenwerk.mhn.de>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
---
net/sunrpc/svcsock.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
This looks appropriate for both 2.6.23 and 2.6.22.x.
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index e053f5a..0417283 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -1593,7 +1593,8 @@ svc_age_temp_sockets(unsigned long closure)
if (!test_and_set_bit(SK_OLD, &svsk->sk_flags))
continue;
- if (atomic_read(&svsk->sk_inuse) || test_bit(SK_BUSY, &svsk->sk_flags))
+ if (atomic_read(&svsk->sk_inuse) > 1
+ || test_bit(SK_BUSY, &svsk->sk_flags))
continue;
atomic_inc(&svsk->sk_inuse);
list_move(le, &to_be_aged);
--
1.5.3.1.42.gfe5df
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2007-09-14 14:28 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-14 14:28 [PATCH] Correctly close old nfsd/lockd sockets J. Bruce Fields
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox