Experimental NFS client patches for Linux 2.4.21

Please note: the patches in this directory represent what I am currently using on my machine. They are experimental, and are made available only so that people can test out features that I plan for inclusion in the kernel in the future.

A brief explanation of the patches in this directory

linux-2.4.21-01-call_reserve1.dif:

A patch by Chuck Lever that cleans up the RPC socket slot allocation code.

linux-2.4.21-02-call_reserve2.dif:

A patch by Chuck Lever with further cleanups of the RPC socket slot allocation code.

linux-2.4.21-03-noac.dif:

Another patch by Chuck Lever that ensures that the PG_uptodate bit gets set when the entire page gets written by nfs_writepage_sync().

linux-2.4.21-04-fix_lockd1.dif:

A patch by Patrice Dumas to implement nlmsvc_proc_granted_res. When a server receives that callback it deallocates the corresponding block, using the nlmsvc_grant_reply function.

linux-2.4.21-05-fix_lockd2.dif:

A patch by Patrice Dumas to add a check in order to ensure that we really were requesting a blocking lock when we get a reply from the server asking us to block.

linux-2.4.21-06-fix_lockd3.dif:

A patch by Patrice Dumas that ensures that the server index blocks uniquely by using the client address in addition to the value of the NLM cookie field.

linux-2.4.21-07-fix_lockd4.dif:

A patch to ensures that blocks which are not going to time out are places last on the nlm_block list (problem reported by Olaf Kirch).

linux-2.4.21-08-xprt_fixes.dif:

Add spinlocks to protect the socket from being released by one CPU while the other is in a soft interrupt.

linux-2.4.21-09-fix_tcprace.dif:

Fix a race: Ensure that requests retry if the remote server disconnects us while we're inside xprt_transmit().

linux-2.4.21-10-fix_tcprace2.dif:

Don't do TCP socket reconnects as an RPC child process.

linux-2.4.21-11-fix_tcprace3.dif:

More TCP socket reconnection fixes. Backport 2.5.x changes, and fix problem introduced by previous patch whereby we might not have the privileges needed to bind to a protected port when reconnecting a TCP socket.

linux-2.4.21-12-fix_tcpcorrupt.dif:

Fix a TCP client corruption problem affecting resent requests.

linux-2.4.21-13-fix_lockdmon.dif:

Ensure that the lockd clients always use one of the reserved ports.

linux-2.4.21-14-fix_unlink.dif:

Ensure that sillydelete waits upon completion unless if user killed the task. Also fix an NFSv3 alignment problem on 64-bit architectures.

linux-2.4.21-15-seekdir.dif:

A patch that papers over a glibc bug. In glibc-2.2 and above, they use the new getdents64() syscall even for the 32-bit readdir. As a result, they have problems coping with the unsigned 64-bit d_off values that may get returned by some NFSv3 servers.

If you are seeing problems involving files that mysteriously disappear from your directory listings, then please consider applying this patch.

NOTE: You might still have to set the '32bitclients' export option on some IRIX servers.

linux-2.4.21-NFS_FIXES.dif:

All of the above...

linux-2.4.21-16-access.dif:

Implements full support for the NFSv3 ACCESS function. This means that file permission mapping, ACLs, and uid/gid mapping on the server should work as expected, allowing or denying certain types of behaviour.

Note that ACCESS results are cached in order to improve performance. The caching period is the same as that used to cache attributes (so if you use 'noac', you can expect a nasty performance hit).

linux-2.4.21-17-pathconf.dif:

A patch that ensures we don't exceed the maximum file name length on an NFSv3 partition.

linux-2.4.21-18-odirect.dif:

A patch by Chuck Lever that implements experimental support for direct I/O over NFS. See the Configure.help file for further info.

Note: you should really consider applying linux-2.4.21-17-pathconf.dif together with this patch. This will allow you to align your O_DIRECT writes on the server's hardware block boundaries rather than being forced to align on the NFS client block boundaries.

linux-2.4.21-19-cto2.dif:

Reduce the number of getattr/lookup calls in nfs_lookup_revalidate() by making the latter rely on the ordinary attribute cache, and moving the close-to-open data consistency checking into nfs_open().

This does mean that we can end up calling GETATTR twice: once in nfs_lookup_revalidate() then immediately after in nfs_open(), however it also means that sys_stat() and friends now use cached attributes.

linux-2.4.21-20-rdplus.dif:

Implements the NFSv3 READDIRPLUS function that allows further file lookup caching improvements.

linux-2.4.21-21-soft.dif:

Back out a few of the retransmission changes that are causing problems for those using the "soft" mount option.

linux-2.4.21-22-soft2.dif:

Cleanup.

linux-2.4.21-NFS_ALL.dif:

A patch containing all of the above changes to the NFS and RPC code. As it is a collection of experimental patches, please expect it to change without notice.


Return to main menu

Please address all comments about this page to Trond Myklebust
About Trond
Last modified: Thu Feb 13 15:28:45 CET 2003
[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.4.21-00-fix_..>2003-06-27 09:39 5.7K 
[TXT]linux-2.4.21-01-call..>2002-08-21 17:22 2.0K 
[TXT]linux-2.4.21-02-call..>2003-02-13 13:37 7.3K 
[TXT]linux-2.4.21-03-noac..>2002-07-25 15:57 809  
[TXT]linux-2.4.21-04-fix_..>2002-08-21 19:12 3.4K 
[TXT]linux-2.4.21-05-fix_..>2002-07-23 16:13 524  
[TXT]linux-2.4.21-06-fix_..>2002-07-23 16:13 4.1K 
[TXT]linux-2.4.21-07-fix_..>2002-07-23 16:14 545  
[TXT]linux-2.4.21-08-xprt..>2002-11-21 17:55 3.3K 
[TXT]linux-2.4.21-09-fix_..>2003-05-06 14:07 1.8K 
[TXT]linux-2.4.21-10-fix_..>2003-05-06 14:13 5.9K 
[TXT]linux-2.4.21-11-fix_..>2003-05-06 14:14 11K 
[TXT]linux-2.4.21-12-fix_..>2003-06-15 22:13 2.1K 
[TXT]linux-2.4.21-13-fix_..>2003-05-06 15:56 4.5K 
[TXT]linux-2.4.21-14-fix_..>2003-05-29 14:41 3.2K 
[TXT]linux-2.4.21-15-seek..>2002-08-21 18:16 3.2K 
[TXT]linux-2.4.21-16-acce..>2002-08-21 19:03 5.7K 
[TXT]linux-2.4.21-17-path..>2002-08-21 19:07 16K 
[TXT]linux-2.4.21-18-odir..>2003-05-29 14:40 20K 
[TXT]linux-2.4.21-19-cto2..>2003-05-07 19:41 2.1K 
[TXT]linux-2.4.21-20-rdpl..>2003-06-30 14:51 15K 
[TXT]linux-2.4.21-21-soft..>2003-06-23 11:47 2.8K 
[TXT]linux-2.4.21-22-soft..>2003-06-23 11:47 6.6K 
[TXT]linux-2.4.21-NFS_ALL..>2003-06-30 14:56 102K 
[TXT]linux-2.4.21-NFS_FIX..>2003-06-15 22:14 43K 

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