NFS client patches for Linux 2.6.27

The following set of patches fix known issues with the 2.6.27 NFS client code, and significantly enhance the support for NFSv4.

linux-2.6.27-001-respond_promptly_to_socket_errors.dif:

From: Trond Myklebust <Trond.Myklebust@netapp.com>

Date: Mon, 27 Oct 2008 09:31:36 -0400

SUNRPC: Respond promptly to server TCP resets

If the server sends us an RST error while we're in the TCP_ESTABLISHED state, then that will not result in a state change, and so the RPC client ends up hanging forever (see http://bugzilla.kernel.org/show_bug.cgi?id=11154)

We can intercept the reset by setting up an sk->sk_error_report callback, which will then allow us to initiate a proper shutdown and retry...

We also make sure that if the send request receives an ECONNRESET, then we shutdown too...

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-002-respond_promptly_to_socket_errors_2.dif:

From: Trond Myklebust <Trond.Myklebust@netapp.com>

Date: Mon, 27 Oct 2008 09:31:37 -0400

SUNRPC: Fix the setting of xprt->reestablish_timeout when reconnecting

If the server aborts an established connection, then we should retry connecting immediately. Since xprt->reestablish_timeout is not reset unless we go through a TCP_FIN_WAIT1 state, we may end up waiting unnecessarily. The fix is to reset xprt->reestablish_timeout in TCP_ESTABLISHED, and then rely on the fact that we set it to non-zero values in all other cases when the server closes the connection.

Also fix a race between xs_connect() and xs_tcp_state_change(). The value of xprt->reestablish_timeout should be updated before we actually attempt the connection.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-003-make_attr_generation_counter_atomic.dif:

From: Trond Myklebust <Trond.Myklebust@netapp.com>

Date: Mon, 27 Oct 2008 09:31:37 -0400

NFS: Convert nfs_attr_generation_counter into an atomic_long

The most important property we need from nfs_attr_generation_counter is monotonicity, which is not guaranteed by the current system of smp memory barriers. We should convert it to an atomic_long_t, and drop the memory barriers.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-004-fix_rpcauth_prune_expired.dif:

From: Trond Myklebust <Trond.Myklebust@netapp.com>

Date: Mon, 27 Oct 2008 11:43:48 -0400

SUNRPC: Fix rpcauth_prune_expired

We need to make sure that we don't remove creds from the cred_unused list if they are still under the moratorium, or else they will never get garbage collected.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-005-fix_race_in_put_rpccred.dif:

From: Trond Myklebust <Trond.Myklebust@netapp.com>

Date: Mon, 27 Oct 2008 14:57:40 -0400

SUNRPC: Fix potential race in put_rpccred()

We have to be careful when we try to unhash the credential in put_rpccred(), because we're not holding the credcache lock, so the call to rpcauth_unhash_cred() may fail if someone else has looked the cred up, and obtained a reference to it.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.27-001-res..>2008-10-27 19:03 4.3K 
[TXT]linux-2.6.27-002-res..>2008-10-27 19:03 2.5K 
[TXT]linux-2.6.27-003-mak..>2008-10-27 19:03 1.3K 
[TXT]linux-2.6.27-004-fix..>2008-10-27 19:03 1.6K 
[TXT]linux-2.6.27-005-fix..>2008-10-27 19:03 1.0K 
[   ]series 2008-10-27 19:03 338  

Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16 mod_perl/2.0.11 Perl/v5.16.3 Server at linux-nfs.org Port 80