NFS client patches for Linux 2.6.1

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

linux-2.6.1-01-fix_setattr.dif:

NFS: Optimize away SETATTR requests that will have no effect on the server. Fixes a bug whereby remove_suid() keeps resending empty SETATTR after each and every write request.

linux-2.6.1-02-fix_commit.dif:

NFS: Fix a bug in the NFS write code. Ensure that we always flush the entire file. Fixes a performance problem when mixing reads and writes.

linux-2.6.1-03-fix_intent.dif:

VFS: Fix one bug and one omitted open "intent" in fs/exec.c

linux-2.6.1-04-fix_access.dif:

NFSv2/v3/v4: Ensure that the NFS permissions checks for local permissions such as read_only filesystem before it optimizes anything away.

linux-2.6.1-05-fix_deadlock.dif:

NFS: Fix a bug in the NFS write code whereby writepage() may end up deadlocking on clear_inode(). This bug also affects NFSv2/v3

linux-2.6.1-06-cel_show_tasks_fix:

Prevent rpc_show_tasks from oopsing when you enable RPC debugging.

linux-2.6.1-07-rpc_pipe_timeout.dif:

NFSv4/RPCSEC_GSS: Ensure that RPC userland upcalls time out correctly if the corresponding userland daemon is not up and running.

linux-2.6.1-08-auth_gss.dif:

RPCSEC_GSS: More fixes to the upcall mechanism.

linux-2.6.1-09-pipe_close.dif:

RPCSEC_GSS: Make the upcalls detect if the userland daemon dies while processing a request.

linux-2.6.1-10-fix_nfs4client.dif:

NFSv4: Fix an Oopsable condition if we fail to get the root directory under NFSv4.

linux-2.6.1-11-fix_idmap.dif:

NFSv4: Bugfixes for the NFSv4 client name to uid mapper. Fixes a memory-scribble problem.

linux-2.6.1-12-fix_idmap2.dif:

NFSv4: Bugfixes and cleanups for the NFSv4 client name to uid mapper. Includes a fix by Tim Woods to deal with a caching bug in the case where a user and a group share the same numerical id and/or name.

linux-2.6.1-13-gss_krb5.dif:

RPCSEC_GSS: Make it safe to share crypto tfms among multiple threads.

linux-2.6.1-14-gss_missingkfree.dif:

RPCSEC_GSS: Oops. Major memory leak here.

linux-2.6.1-15-memleaks.dif:

RPCSEC_GSS: Fix two more memory leaks found by the stanford checker.

linux-2.6.1-16-refleaks.dif:

RPCSEC_GSS: Fix yet more memory leaks.

linux-2.6.1-17-krb5_cleanup.dif:

RPCSEC_GSS: Miscellaneous cleanups of the krb5 code required for the integrity checksumming.

linux-2.6.1-18-gss_nokmalloc.dif:

RPCSEC_GSS: Instead of having gss_get_mic allocate memory for the mic, require the caller to pass an output buffer whose data pointer already points to preallocated memory.

linux-2.6.1-19-krb5_integ.dif:

RPCSEC_GSS: Client-side only support for rpcsec_gss integrity protection. Since this requires checksumming an entire request, instead of just the header, and since the request may include, for example, pages with write data, we modify the gss_api routines to pass xdr_buf's instead of xdr_netobj's where necessary.

We add rpcauth_wrap_req and rpcauth_unwrap_resp to rpcauth.c, wrappers for the new rpc cred ops crwrap_req and crunwrap_req, which are called just before encoding, and just after decoding, respectively.

linux-2.6.1-20-clnt_seqno_to_req.dif:

RPCSEC_GSS: Move the gss sequence number history from the task structure to the request structure, where it makes more sense. In particular, when we start storing more sequence number history (necessary to process responses to resent requests correctly), this will make it easier to initialize the necessary data structure in the right place (in xprt_request_init).

linux-2.6.1-21-encode_pages_tail.dif:

xdr_encode_pages either leaves the tail iovec pointing to null or, if padding onthe page data is needed, sets it to point to a little bit of static data. This is a problem if we're expecting to later append some data in gss_wrap_req. Modify xdr_encode_pages to make tail point to the end of the data in head, as xdr_inline_pages and xdr_write_pages do.

linux-2.6.1-22-rpc_clones.dif:

RPC: Add support for sharing the same RPC transport and credential caches between different mountpoints by allowing cloning of the rpc_client struct.

linux-2.6.1-23-rpc_clone2.dif:

NFSv4/RPCSEC_GSS: Make Frank's server->client_sys feature use RPC cloning in order to avoid duplicating sockets etc. Make NFSv4 share a single socket for all communication to the same server.

linux-2.6.1-24-renew_xdr.dif:

NFSv4: Convert the RENEW operation from using nfs4_compound, to being a standalone RPC call in preparation for the renew daemon overhaul.

linux-2.6.1-25-renewd.dif:

NFSv4: Convert the lease renewal daemon from being per-mountpoint to being per-server. Instead of running it on top of rpciod, convert it to use keventd. This mean we can use the struct nfs4_client semaphores for ordering purposes.

linux-2.6.1-26-fsinfo_xdr.dif:

NFSv4: Split out the code for retrieving static server information out of the GETATTR compound.

linux-2.6.1-27-setclientid_xdr.dif:

NFSv4: Convert SETCLIENTID and SETCLIENTID_CONFIRM to be standalone operations. Ensure that SETCLIENTID_CONFIRM always returns the lease timeout length.

linux-2.6.1-28-errno.dif:

NFSv4: Don't translate those NFSv4 errors that are needed by the kernel itself into EIO.

NFSv4: Fix a signed/unsigned bug in nfs4_increment_seqid.

linux-2.6.1-29-open_reclaim.dif:

NFSv4: Preparation for the server reboot recovery code.

linux-2.6.1-30-state_recovery.dif:

NFSv4: Basic code for recovering file OPEN state after a server reboot.

linux-2.6.1-31-soft.dif:

RPC/NFSv4: Allow lease RENEW calls to be soft (i.e. to time out) despite the mount being hard.

linux-2.6.1-32-sock_disconnect.dif:

RPC: Ensure that we disconnect TCP sockets if there has been no NFS traffic for the last 5 minutes. This code also affects NFSv2/v3.

linux-2.6.1-33-atomic_open.dif:

NFSv4: Atomic open(). Fixes races w.r.t. opening files.

linux-2.6.1-34-open_owner.dif:

NFSv4: Share open_owner structs between several different processes. Reduces the load on the server.

linux-2.6.1-35-fix_idmap3.dif:

NFSv4: Fix a bug which was causing Oopses if the client was mounting more than one partition from the same server.

linux-2.6.1-36-lock.dif:

NFSv4: Add support for POSIX file locking.

linux-2.6.1-37-attr.dif:

NFSv2/v3/v4: New attribute revalidation code that no longer relies on ctime for correctness in avoiding races.

linux-2.6.1-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.1-01-fix_s..>2004-01-09 01:44 1.1K 
[TXT]linux-2.6.1-02-fix_c..>2004-01-03 18:02 776  
[TXT]linux-2.6.1-03-fix_i..>2004-01-04 17:27 1.0K 
[TXT]linux-2.6.1-04-fix_a..>2004-01-03 18:02 1.1K 
[TXT]linux-2.6.1-05-fix_d..>2004-01-03 18:02 1.5K 
[TXT]linux-2.6.1-06-cel_s..>2004-01-03 18:02 665  
[TXT]linux-2.6.1-07-rpc_p..>2004-01-03 18:02 5.5K 
[TXT]linux-2.6.1-08-auth_..>2004-01-03 18:02 6.0K 
[TXT]linux-2.6.1-09-pipe_..>2004-01-03 18:02 7.9K 
[TXT]linux-2.6.1-10-fix_n..>2004-01-03 18:02 518  
[TXT]linux-2.6.1-11-fix_i..>2004-01-03 18:02 2.4K 
[TXT]linux-2.6.1-12-fix_i..>2004-01-07 18:45 18K 
[TXT]linux-2.6.1-13-gss_k..>2004-01-03 18:02 1.4K 
[TXT]linux-2.6.1-14-gss_m..>2004-01-03 18:02 611  
[TXT]linux-2.6.1-15-memle..>2004-01-03 18:02 1.3K 
[TXT]linux-2.6.1-16-refle..>2004-01-03 18:02 1.6K 
[TXT]linux-2.6.1-17-krb5_..>2004-01-03 18:02 16K 
[TXT]linux-2.6.1-18-gss_n..>2004-01-03 18:02 1.8K 
[TXT]linux-2.6.1-19-krb5_..>2004-01-03 18:02 33K 
[TXT]linux-2.6.1-20-clnt_..>2004-01-03 18:02 3.1K 
[TXT]linux-2.6.1-21-encod..>2004-01-03 18:02 1.0K 
[TXT]linux-2.6.1-22-rpc_c..>2004-01-03 18:02 12K 
[TXT]linux-2.6.1-23-rpc_c..>2004-01-03 18:02 6.6K 
[TXT]linux-2.6.1-24-renew..>2004-01-03 18:02 7.3K 
[TXT]linux-2.6.1-25-renew..>2004-01-03 18:02 14K 
[TXT]linux-2.6.1-26-fsinf..>2004-01-03 18:02 14K 
[TXT]linux-2.6.1-27-setcl..>2004-01-03 18:02 14K 
[TXT]linux-2.6.1-28-errno..>2004-01-03 18:02 6.3K 
[TXT]linux-2.6.1-29-open_..>2004-01-06 21:34 11K 
[TXT]linux-2.6.1-30-state..>2004-01-03 18:02 20K 
[TXT]linux-2.6.1-31-soft.dif2004-01-03 18:02 4.5K 
[TXT]linux-2.6.1-32-sock_..>2004-01-03 18:02 6.3K 
[TXT]linux-2.6.1-33-atomi..>2004-01-07 18:34 19K 
[TXT]linux-2.6.1-34-open_..>2004-01-08 20:52 18K 
[TXT]linux-2.6.1-35-fix_i..>2004-01-07 19:58 10K 
[TXT]linux-2.6.1-36-lock.dif2004-01-06 21:47 38K 
[TXT]linux-2.6.1-37-attr.dif2004-03-06 04:07 56K 
[TXT]linux-2.6.1-NFS4_ALL..>2004-01-09 01:45 271K 

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