The following set of patches fix known issues with the 2.6.28-rc9 NFS client code, and significantly enhance the support for NFSv4.
From: Trond Myklebust <Trond.Myklebust@netapp.com>
Date: Tue, 23 Dec 2008 15:18:07 -0500
SUNRPC: Ensure the server closes sockets in a timely fashion
We want to ensure that connected sockets close down the connection when we set XPT_CLOSE, so that we don't keep it hanging while cleaning up all the stuff that is keeping a reference to the socket.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
From: Trond Myklebust <Trond.Myklebust@netapp.com>
Date: Tue, 23 Dec 2008 15:18:08 -0500
SUNRPC: We only need to call svc_delete_xprt() once...
Use XPT_DEAD to ensure that we only call xpo_detach & friends once.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
From: Trond Myklebust <Trond.Myklebust@netapp.com>
Date: Tue, 23 Dec 2008 15:18:08 -0500
SUNRPC: svc_xprt_enqueue should not refuse to enqueue 'XPT_DEAD' transports
Aside from being racy (there is nothing preventing someone setting XPT_DEAD after the test in svc_xprt_enqueue, and before XPT_BUSY is set), it is wrong to assume that transports which have called svc_delete_xprt() might not need to be re-enqueued.
See the list of deferred requests, which is currently never going to be cleared if the revisit call happens after svc_delete_xprt(). In this case, the deferred request will currently keep a reference to the transport forever.
The fix should be to allow dead transports to be enqueued in order to clear the deferred requests, then change the order of processing in svc_recv() so that we pick up deferred requests before we do the XPT_CLOSE processing.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
From: Trond Myklebust <Trond.Myklebust@netapp.com>
Date: Tue, 23 Dec 2008 15:18:08 -0500
SUNRPC: The sunrpc server code should not be used by out-of-tree modules
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Name | Last modified | Size | Description | |
---|---|---|---|---|
Parent Directory | - | |||
linux-2.6.28-001-fix..> | 2008-12-23 21:27 | 2.0K | ||
linux-2.6.28-002-fix..> | 2008-12-23 21:27 | 1.4K | ||
linux-2.6.28-003-fix..> | 2008-12-23 21:27 | 6.1K | ||
linux-2.6.28-004-sun..> | 2008-12-23 21:27 | 11K | ||
series | 2008-12-23 21:27 | 261 | ||