[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-stable-commits
Subject:    patch correctly-close-old-nfsd-lockd-sockets.patch queued to -stable tree
From:       <gregkh () suse ! de>
Date:       2007-09-21 22:57:37
Message-ID: 20070921225657.9C3801449FC0 () imap ! suse ! de
[Download RAW message or body]


This is a note to let you know that we have just queued up the patch titled

     Subject: Correctly close old nfsd/lockd sockets.

to the 2.6.22-stable tree.  Its filename is

     correctly-close-old-nfsd-lockd-sockets.patch

A git repo of this tree can be found at 
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary


From stable-bounces@linux.kernel.org Fri Sep 14 07:28:34 2007
From: Neil Brown <neilb@suse.de>
Date: Fri, 14 Sep 2007 10:28:08 -0400
Subject: Correctly close old nfsd/lockd sockets.
To: Linus Torvalds <torvalds@linux-foundation.org>, stable@kernel.org
Cc: Neil Brown <neilb@suse.de>, nfs@lists.sourceforge.net, \
                linux-kernel@vger.kernel.org, trond.myklebust@fys.uio.no
Message-ID: <20070914142808.GD20606@fieldses.org>
Content-Disposition: inline

From: Neil Brown <neilb@suse.de>

commit 7a1fa065a0264f6b3d3003ba5635289f6583c478 in mainline.

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>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

--- 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

_______________________________________________
stable mailing list
stable@linux.kernel.org
http://linux.kernel.org/mailman/listinfo/stable



Patches currently in stable-queue which might be from neilb@suse.de are

queue-2.6.22/rpc-fix-garbage-in-printk-in-svc_tcp_accept.patch
queue-2.6.22/correctly-close-old-nfsd-lockd-sockets.patch
-
To unsubscribe from this list: send the line "unsubscribe stable-commits" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic