NFS client patches for Linux 2.6.5

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

linux-2.6.5-01-prepare_nfspage.dif:

NFSv2/v3/v4: Prepare the nfs_page struct to allow for short reads.

linux-2.6.5-02-small_rsize.dif:

NFSv2/v3/v4: Add support for asynchronous reads even if rsize<PAGE_CACHE_SIZE.

linux-2.6.5-03-small_wsize.dif:

NFSv2/v3/v4: Add support for asynchronous writes even if wsize<PAGE_CACHE_SIZE.

linux-2.6.5-04-congestion.dif:

NFSv2/v3/v4: When pdflush() is trying to free up memory by calling our writepages() method, throttle all writes to that mountpoint.

NFSv2/v3/v4: Make the struct nfs_page allocator use GFP_KERNEL rather than GFP_NOFS.

linux-2.6.5-05-unrace.dif:

RPC,NFS: remove instances of tests for waitqueue_active(). Those can be racy.

RPC: remove unnecessary support for sk->sk_sleep on those sockets that are owned by the RPC client.

linux-2.6.5-06-rpc_throttle:

RPC: add fair queueing to the RPC scheduler.

If a wait queue is defined as a "priority queue" then requests are dequeued in blocks of 16 in order to work well with write gathering + readahead on the server.

There are 3 levels of priority. The high priority tasks get scheduled 16 times for each time the default level gets scheduled. The lowest level gets scheduled once every 4 times the normal level gets scheduled.

Original patch contributed by Shantanu Goel.

linux-2.6.5-07-rpc_fixes2:

Close some potential scheduler races in rpciod.

linux-2.6.5-08-short_rw.dif:

NFSv2/v3/v4: Deal with the case where the server reads/writes fewer bytes than we requested due to resource limitations etc.

linux-2.6.5-09-fix_integrity.dif:

RPCSEC_GSS: Fix integrity checksum bugs. Need to take are > PAGE_CACHE_SIZE.

linux-2.6.5-10-attr2.dif:

NFSv2/v3/v4: Fix a slowdown of O_SYNC and O_DIRECT writes that resulted from over-aggressive attribute cache revalidation.

linux-2.6.5-11-nfsroot_parse.dif:

NFSROOT: clean up the parser routines (patch by Fabian Frédérick).

linux-2.6.5-12-gss_padding.dif:

RPCSEC_GSS: Fix RPC padding in two instances of RPCSEC_GSS code.

RPC: Clean up XDR encoding of opaque data.

linux-2.6.5-13-fix_bitmap.dif:

NFSv4: attribute bitmap values need to be unsigned long integers.

linux-2.6.5-14-decompoundify_access.dif:

NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating ACCESS RPC calls.

linux-2.6.5-15-decompoundify_getattr.dif:

NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating GETATTR RPC calls.

linux-2.6.5-16-cleanup_getattr3.dif:

NFSv4: Remove unnecessary post-op attributes from read/write/... calls. The new attribute revalidation scheme doesn't rely on them.

linux-2.6.5-17-decompoundify_lookup.dif:

NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating LOOKUP RPC calls.

linux-2.6.5-18-decompoundify_getroot.dif:

NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for looking up the mountpoint.

linux-2.6.5-19-decompoundify_remove.dif:

NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating REMOVE RPC calls.

linux-2.6.5-20-decompoundify_rename.dif:

NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating RENAME RPC calls.

linux-2.6.5-21-decompoundify_link.dif:

NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating hard links.

linux-2.6.5-22-decompoundify_create.dif:

NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating CREATE RPC calls.

linux-2.6.5-23-decompoundify_pathconf.dif:

NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating PATHCONF RPC calls.

linux-2.6.5-24-decompoundify_statfs.dif:

NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating STATFS RPC calls.

linux-2.6.5-25-decompoundify_unlink.dif:

NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme when doing sillyrename() completion.

linux-2.6.5-26-decompoundify_readlink.dif:

NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating READLINK RPC calls.

linux-2.6.5-27-decompoundify_readdir.dif:

NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating READDIR RPC calls.

linux-2.6.5-28-decompoundify_cleanup.dif:

NFSv4: assorted code readability cleanups in the XDR layer.

linux-2.6.5-29-cleanup_fsinfo.dif:

NFSv4: clean up the FSINFO XDR code to conform to the new scheme for GETATTR.

linux-2.6.5-30-xdr_length.dif:

RPC: add a field to the xdr_buf that explicitly contains the maximum buffer length.

RPC: make the client receive xdr_buf return the actual length of the RPC message.

NFSv4/RPC: improved checks to prevent XDR reading beyond the actual length of the RPC message.

linux-2.6.5-31-server_caps.dif:

NFSv4: Check server capabilities at mount time so that we can optimize away requests for attributes that are not supported. In particular, we wish to determine whether or not the server supports ACLs.

linux-2.6.5-NFS4_ALL.dif:

All of the above patches rolled into one.


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.5-01-prepa..>2004-03-24 06:49 4.4K 
[TXT]linux-2.6.5-02-small..>2004-03-24 06:49 23K 
[TXT]linux-2.6.5-03-small..>2004-03-24 06:49 27K 
[TXT]linux-2.6.5-04-conge..>2004-03-24 06:49 5.2K 
[TXT]linux-2.6.5-05-unrac..>2004-03-24 06:49 3.2K 
[TXT]linux-2.6.5-06-rpc_t..>2004-03-24 06:49 23K 
[TXT]linux-2.6.5-07-rpc_f..>2004-03-24 06:49 2.6K 
[TXT]linux-2.6.5-08-short..>2004-03-24 06:49 4.2K 
[TXT]linux-2.6.5-09-fix_i..>2004-03-24 06:49 1.7K 
[TXT]linux-2.6.5-10-attr2..>2004-03-24 06:49 3.8K 
[TXT]linux-2.6.5-11-nfsro..>2004-03-24 06:49 6.6K 
[TXT]linux-2.6.5-12-gss_p..>2004-03-24 06:49 5.9K 
[TXT]linux-2.6.5-13-fix_b..>2004-03-24 06:49 6.1K 
[TXT]linux-2.6.5-14-decom..>2004-03-24 06:49 8.9K 
[TXT]linux-2.6.5-15-decom..>2004-03-24 16:52 16K 
[TXT]linux-2.6.5-16-clean..>2004-03-24 06:49 10K 
[TXT]linux-2.6.5-17-decom..>2004-03-24 16:56 9.0K 
[TXT]linux-2.6.5-18-decom..>2004-03-24 16:57 10K 
[TXT]linux-2.6.5-19-decom..>2004-03-24 06:49 7.9K 
[TXT]linux-2.6.5-20-decom..>2004-03-24 06:49 10K 
[TXT]linux-2.6.5-21-decom..>2004-03-24 06:49 8.5K 
[TXT]linux-2.6.5-22-decom..>2004-03-24 16:55 19K 
[TXT]linux-2.6.5-23-decom..>2004-03-24 16:58 9.4K 
[TXT]linux-2.6.5-24-decom..>2004-03-24 16:58 12K 
[TXT]linux-2.6.5-25-decom..>2004-03-24 06:49 6.0K 
[TXT]linux-2.6.5-26-decom..>2004-03-24 06:49 6.9K 
[TXT]linux-2.6.5-27-decom..>2004-03-24 16:59 19K 
[TXT]linux-2.6.5-28-decom..>2004-03-24 16:55 42K 
[TXT]linux-2.6.5-29-clean..>2004-03-24 17:01 9.6K 
[TXT]linux-2.6.5-30-xdr_l..>2004-03-24 06:49 18K 
[TXT]linux-2.6.5-31-serve..>2004-03-25 21:26 14K 
[TXT]linux-2.6.5-NFS4_ALL..>2004-03-25 21:27 272K 

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