NFS client patches for Linux 2.6.25-rc1

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

linux-2.6.25-001-fix_write_race.dif:

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

Date: Thu, 7 Feb 2008 17:24:07 -0500

Subject: NFS: Fix a potential file corruption issue when writing

If the inode is flagged as having an invalid mapping, then we can't rely on the PageUptodate() flag. Ensure that we don't use the "anti-fragmentation" write optimisation in nfs_updatepage(), since that will cause NFS to write out areas of the page that are no longer guaranteed to be up to date.

A potential corruption could occur in the following scenario:

client 1 client 2 =============== =============== fd=open("f",O_CREAT|O_WRONLY,0644); write(fd,"fubar\n",6); // cache last page close(fd); fd=open("f",O_WRONLY|O_APPEND); write(fd,"foo\n",4); close(fd);

fd=open("f",O_WRONLY|O_APPEND); write(fd,"bar\n",4); close(fd); ----- The bug may lead to the file "f" reading 'fubar\n\0\0\0\nbar\n' because client 2 does not update the cached page after re-opening the file for write. Instead it keeps it marked as PageUptodate() until someone calls invaldate_inode_pages2() (typically by calling read()).

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

linux-2.6.25-002-nfs_use_gfp_nofs_preloads_for_radix_tree_insertion.dif:

From: Nick Piggin <npiggin@suse.de>

Date: Mon, 04 Feb 2008 23:48:37 -0800

Subject: nfs: use GFP_NOFS preloads for radix-tree insertion

NFS should use GFP_NOFS mode radix tree preloads rather than GFP_ATOMIC allocations at radix-tree insertion-time. This is important to reduce the atomic memory requirement.

Signed-off-by: Nick Piggin <npiggin@suse.de> Cc: Trond Myklebust <trond.myklebust@fys.uio.no> Cc: "J. Bruce Fields" <bfields@fieldses.org>

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

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

linux-2.6.25-003-add_lookup_mountpoint_flag.dif:

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

Date: Sat, 2 Feb 2008 17:33:48 -0500

Subject: VFS: Add an intent for LOOKUP_MOUNT

This will allow automounters etc to signal to a filesystem that the lookup is intended for a 'mount' request, and that we shouldn't trigger any automounter traps/upcalls.

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

linux-2.6.25-004-nfs_make_access_return_attributes.dif:

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

Date: Fri, 10 Aug 2007 17:45:12 -0400

Subject: NFS: Make rpc_ops->access return attributes to the caller

Now that both NFSv3 and NFSv4 return attributes as part of the ACCESS call, we can move the common code into nfs_do_access().

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

linux-2.6.25-005-add_nfs_do_uncached_access.dif:

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

Date: Fri, 10 Aug 2007 17:45:12 -0400

Subject: NFS: Split the cached and uncached ACCESS calls into separate functions

This will be used by the NFSv3 "atomic open()" optimisation.

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

linux-2.6.25-006-add_permission_method.dif:

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

Date: Mon, 13 Aug 2007 08:02:31 -0400

Subject: NFS: Add an NFS version specific permission() method.

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

linux-2.6.25-007-cleanup_nfs_lookup_revalidate.dif:

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

Date: Fri, 10 Aug 2007 17:45:13 -0400

Subject: NFS: Clean up nfs_lookup_revalidate()

Split it up into components that can easily be called from other functions.

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

linux-2.6.25-008-add_nfs_lookup_instantiate_filp.dif:

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

Date: Fri, 10 Aug 2007 18:27:23 -0400

Subject: NFS: Add a helper nfs_lookup_instantiate_filp()

And use it in the NFSv4 atomic open code to ensure that we also set the nfs_open_context credential to the correct value (i.e. that used in the OPEN call).

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

linux-2.6.25-009-nfs_generic_stateless_open.dif:

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

Date: Fri, 10 Aug 2007 18:34:41 -0400

Subject: NFS: Add a generic stateless open function

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

linux-2.6.25-010-nfs_stateless_open_create.dif:

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

Date: Wed, 15 Aug 2007 08:54:43 -0400

Subject: NFS: Add stateless open to NFSv2 and NFSv3 create operations

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

linux-2.6.25-011-optimise_permission_call.dif:

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

Date: Wed, 15 Aug 2007 08:55:47 -0400

Subject: NFS: Optimise NFS permission calls.

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

linux-2.6.25-012-optimise_nfs_revalidate_inode.dif:

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

Date: Wed, 15 Aug 2007 12:15:37 -0400

Subject: NFS: Optimise nfs_revalidate_inode()

Instead of serialising calls to nfs_revalidate_inode, we should just be attempting to ensure that we've updated the attributes.

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

linux-2.6.25-013-add_timers_to_wait_queues.dif:

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

Date: Wed, 18 Jul 2007 16:18:52 -0400

Subject: SUNRPC: Add a timer function to wait queues.

This is designed to replace the timeout timer in the individual rpc_tasks. By putting the timer function in the wait queue, we will eventually be able to reduce the total number of timers in use by the RPC subsystem.

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

linux-2.6.25-014-gss_triple_to_pseudoflavor.dif:

From: Andy Adamson <andros@umich.edu>

Date: Fri, 18 May 2007 16:52:39 -0400

Subject: SUNRPC: Add a helper function to convert a GSS triple into pseudoflavor

Helper function for OP_SECINFO. Return the pseudoflavor for a supported security mechanism OID, qop, and service. Return RPC_AUTH_MAXFLAVOR upon failure.

Signed-off-by: Andy Adamson <andros@citi.umich.edu>

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

linux-2.6.25-015-nfs_secinfo_xdr.dif:

From: Andy Adamson <andros@umich.edu>

Date: Fri, 18 May 2007 16:52:40 -0400

Subject: NFSv4: Add the NFS SECINFO xdr encode/decode routines

Encode and decode routines for OP_SECINFO. Decode routine saves an orderd list of up to NFS4_SECINFO_MAXFLAVORS server supplied pseudoflavors supported on the client.

Signed-off-by: Andy Adamson <andros@citi.umich.edu>

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

linux-2.6.25-016-nfs_secinfo_proc.dif:

From: Andy Adamson <andros@umich.edu>

Date: Fri, 18 May 2007 16:52:44 -0400

Subject: NFSv4: Add the NFS SECINFO proc

Place the secinfo call on the wire

Signed-off-by: Andy Adamson <andros@citi.umich.edu>

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

linux-2.6.25-017-dont_retry_immediately.dif:

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

Date: Wed, 18 Jul 2007 10:24:14 -0400

Subject: SUNRPC: Cache rpcsec_gss upcall failures in order to back off retries

Do an exponential back off if the previous upcall failed to return a valid GSS context.

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

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.25-001-fix..>2008-02-08 00:20 2.7K 
[TXT]linux-2.6.25-002-nfs..>2008-02-08 00:22 3.0K 
[TXT]linux-2.6.25-003-add..>2008-02-08 00:22 1.5K 
[TXT]linux-2.6.25-004-nfs..>2008-02-08 00:22 4.9K 
[TXT]linux-2.6.25-005-add..>2008-02-08 00:22 2.1K 
[TXT]linux-2.6.25-006-add..>2008-02-08 00:22 6.7K 
[TXT]linux-2.6.25-007-cle..>2008-02-08 00:22 4.9K 
[TXT]linux-2.6.25-008-add..>2008-02-08 00:22 3.5K 
[TXT]linux-2.6.25-009-nfs..>2008-02-08 00:22 9.4K 
[TXT]linux-2.6.25-010-nfs..>2008-02-08 00:22 2.8K 
[TXT]linux-2.6.25-011-opt..>2008-02-08 00:22 1.1K 
[TXT]linux-2.6.25-012-opt..>2008-02-08 00:22 3.5K 
[TXT]linux-2.6.25-013-add..>2008-02-08 00:22 3.0K 
[TXT]linux-2.6.25-014-gss..>2007-11-26 22:36 2.3K 
[TXT]linux-2.6.25-015-nfs..>2008-02-08 00:22 6.3K 
[TXT]linux-2.6.25-016-nfs..>2008-02-08 00:22 1.5K 
[TXT]linux-2.6.25-017-don..>2008-02-08 00:22 3.0K 
[   ]series 2008-02-08 00:22 889  

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