NFS client patches for Linux 2.6.6

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

linux-2.6.6-01-reconnect.dif:

RPC: Ensure that if we reconnect, we delay by at least 15 seconds in order to avoid flooding of servers.

linux-2.6.6-02-symlink_overflow.dif:

NFSv2/v3/v4: If the server returns a symlink of length > PAGE_SIZE - 5, we return ENAMETOOLONG.

linux-2.6.6-03-nfs_odirect_attrbug.dif:

NFS_O_DIRECT: there's a code path in nfs_direct_write_seg where NFS_I(inode)->data_updates can get out of sync with reality, which will lead to a BUG() in nfs_clear_inode later on.

Patch by Olaf Kirch.

linux-2.6.6-04-nfs_odirect.dif:

NFS O_DIRECT: Change the NFS O_DIRECT path so that it no longer calls the generic VFS read and write routines.

This allows all application read requests to pass through to the server, instead of just the ones that appear to be inside the file. this eliminates the requirement to use a GETATTR operation before each read or write to determine where the EOF is. this is a significant performance and scalability win.

It also removes all requirements for holding the inode semaphore during NFS direct reads and writes, as the read and write logic no longer needs atomic access to the size of the file. this also helps client CPU scalability by reducing the serialization of writes against a single file.

linux-2.6.6-05-nfs4_reclaim.dif:

NFSv4: Fix a bug in the open reboot-recovery code.

linux-2.6.6-06-soft.dif:

RPC: Make "major" timeouts be of fixed length "timeo<<retrans" rather than counting the number of retransmissions. The clock starts at the first attempt to send each request.

RPC: Ensure that we "slow start" the RTT estimation after a major timeout has occurred.

linux-2.6.6-07-mount_err.dif:

NFS: Patch by Steve Dickson to improve error reporting when mounting the filesystem.

linux-2.6.6-08-printk_cleanup.dif:

RPCSEC_GSS: this adds some new trace messages and makes existing ones consistent with other trace messages in the RPC client.

linux-2.6.6-09-gss_krb5_clean.dif:

RPCSEC_GSS: Make a couple functions in the krb5 code more generally useful. This will help prepare for the spkm3 and lipkey mechanisms.

linux-2.6.6-10-gss_mech_clean.dif:

RPCSEC_GSS: Fix module reference counting. Clean up the interface to the GSSAPI code.

linux-2.6.6-11-gss_ksyms.dif:

RPCSEC_GSS: Move EXPORT_SYMBOL's to place where functions are defined.

linux-2.6.6-12-gss_krbi_cleanup.dif:

RPCSEC_GSS: Split out integrity code in wrap and unwrap procedures; otherwise they're going to be ridiculously long after we add privacy support.

linux-2.6.6-13-fix_krb5_expiry.dif:

RPCSEC_GSS: The expiration time passed down in the gss context is (duh!) in seconds, not jiffies!

linux-2.6.6-14-setclientid.dif:

NFSv4: Prime SETCLIENTID call for the delegation callback info.

linux-2.6.6-15-rpc_workqueue.dif:

RPC: Convert rpciod into a work queue for greater flexibility.

linux-2.6.6-16-rpc_queue_lock.dif:

RPC: Remove the rpc_queue_lock global spinlock. Replace it with per-rpc_queue spinlocks

linux-2.6.6-17-file_ctx.dif:

NFSv2/v3/v4: Place NFS nfs_page shared data into a single structure that hangs off filp->private_data. As a side effect, this also cleans up the NFSv4 private file state info.

linux-2.6.6-18-file_ctx2.dif:

NFSv4: More cleanups of the NFSv4 state.

linux-2.6.6-NFS4_ALL.dif:

All of the above patches rolled into one.

linux-2.6.6-19-delegation1.dif:

NFSv4: Basic code for managing delegation state.

linux-2.6.6-20-delegation2.dif:

NFSv4: Delegation callback server.


Return to main menu

Please address all comments about this page to Trond Myklebust
About Trond
Last modified: Mon Jan 05 14:33:10 EST 2004
[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.6-01-recon..>2004-05-09 05:17 1.3K 
[TXT]linux-2.6.6-02-symli..>2004-05-16 21:36 4.0K 
[TXT]linux-2.6.6-03-nfs_o..>2004-05-17 19:11 585  
[TXT]linux-2.6.6-04-nfs_o..>2004-05-17 19:11 8.1K 
[TXT]linux-2.6.6-05-nfs4_..>2004-04-20 21:34 626  
[TXT]linux-2.6.6-06-soft.dif2004-04-19 16:02 8.7K 
[TXT]linux-2.6.6-07-mount..>2004-04-21 17:43 1.6K 
[TXT]linux-2.6.6-08-print..>2004-04-19 17:58 19K 
[TXT]linux-2.6.6-09-gss_k..>2004-05-16 22:41 7.9K 
[TXT]linux-2.6.6-10-gss_m..>2004-05-16 22:42 28K 
[TXT]linux-2.6.6-11-gss_k..>2004-05-16 22:42 7.4K 
[TXT]linux-2.6.6-12-gss_k..>2004-05-16 22:43 6.2K 
[TXT]linux-2.6.6-13-fix_k..>2004-05-17 18:27 1.2K 
[TXT]linux-2.6.6-14-setcl..>2004-04-12 23:25 5.1K 
[TXT]linux-2.6.6-15-rpc_w..>2004-04-20 04:14 29K 
[TXT]linux-2.6.6-16-rpc_q..>2004-07-02 21:20 8.0K 
[TXT]linux-2.6.6-17-file_..>2004-04-27 20:52 55K 
[TXT]linux-2.6.6-18-file_..>2004-04-05 21:48 5.0K 
[TXT]linux-2.6.6-19-deleg..>2004-04-22 03:57 17K 
[TXT]linux-2.6.6-20-deleg..>2004-05-15 00:33 34K 
[TXT]linux-2.6.6-NFS4_ALL..>2004-05-17 19:20 165K 

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