Re: [Bug #14943] nfs regression?

Américo Wang
2010-02-22T02:13:21Z

On Mon, Feb 22, 2010 at 5:42 AM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> This message has been generated automatically as a part of a report
> of regressions introduced between 2.6.31 and 2.6.32.
>
> The following bug entry is on the current list of known regressions
> introduced between 2.6.31 and 2.6.32.  Please verify if it still should
> be listed and let the tracking team know (either way).
>
>
> Bug-Entry       : http://bugzilla.kernel.org/show_bug.cgi?id=14943
> Subject         : nfs regression?
> Submitter       : Nikola Ciprich <extmaillist@linuxbox.cz>
> Date            : 2009-12-28 12:10 (56 days old)
> References      : http://marc.info/?l=linux-kernel&m=126200276223524&w=4
>

This seems that we missed checking XPT_DEAD too.

Nikola, does adding !test_bit(XPT_DEAD, &xprt->xpt_flags) in the same
place as commit b292cf9ce70d221c3f04f help?

Something like:

diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c
index 7d1f9e9..7b66c7f 100644
--- a/net/sunrpc/svc_xprt.c
+++ b/net/sunrpc/svc_xprt.c
@@ -700,7 +700,8 @@ int svc_recv(struct svc_rqst *rqstp, long timeout)

len = 0;
if (test_bit(XPT_LISTENER, &xprt->xpt_flags) &&
- !test_bit(XPT_CLOSE, &xprt->xpt_flags)) {
+ !test_bit(XPT_CLOSE, &xprt->xpt_flags) &&
+ !test_bit(XPT_DEAD, &xprt->xpt_flags)) {
struct svc_xprt *newxpt;
newxpt = xprt->xpt_ops->xpo_accept(xprt);
if (newxpt) {