NFS client patches for Linux 2.6.27-rc6

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

linux-2.6.27-001-fix_nfs_file_llseek.dif:

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

Date:

NFS: Fix nfs_file_llseek()

After the BKL removal patches were applied to the rest of the NFS code, the BKL protection in nfs_file_llseek() is no longer sufficient to ensure that inode->i_size is read safely in generic_file_llseek_unlocked().

In order to fix the situation, we either have to replace the naked read of inode->i_size in generic_file_llseek_unlocked() with i_size_read(), or the whole thing needs to be executed under the inode->i_lock; In order to avoid disrupting other filesystems, avoid touching generic_file_llseek_unlocked() for now...

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

linux-2.6.27-002-cleanup_unlink.dif:

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

Date: Sun, 27 Jul 2008 18:19:01 -0400

NFS: Clean up nfs_sb_active/nfs_sb_deactive

Instead of causing umount requests to block on server->active_wq while the asynchronous sillyrename deletes are executing, we can use the sb->s_active counter to obtain a reference to the super_block, and then release that reference in nfs_async_unlink_release().

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

linux-2.6.27-003-stricter_lookup_cache.dif:

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

Date: Tue, 15 Jul 2008 17:58:13 -0400

NFS: Add options for finer control of the lookup cache

Add a flag to turn off the caching of negative dentries. Add a flag for enforcing stricter revalidation of all dentries.

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

linux-2.6.27-004-dont_apply_nfs_mount_flagmask_to_text_mounts.dif:

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

Date: Fri, 15 Aug 2008 16:59:14 -0400

NFS: Don't apply NFS_MOUNT_FLAGMASK to text-based mounts

The point of introducing text-based mounts was to allow us to add functionality without having to worry about legacy binary mount formats. The mask should be there in order to ensure that binary formats don't start enabling features that they cannot support. There is no justification for applying it to the text mount path.

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

linux-2.6.27-005-lookupcache_mount_options.dif:

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

Date: Tue, 15 Jul 2008 17:58:14 -0400

NFS: Add mount options for controlling the lookup cache

Add the following NFS-specific mount options to the parser.

-o lookupcache=all /* Default: cache positive & negative dentries */ -o lookupcache=pos[itive] /* Don't cache negative dentries */ -o lookupcache=none /* Strict revalidation of all dentries */

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

linux-2.6.27-006-fix_attribute_update.dif:

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

Date:

NFS: Fix the NFS attribute update

Currently nfs_refresh_inode() will only update the inode metadata if it sees that the RPC call that returned the nfs_fattr was started after the last update of the inode. This means that if we have parallel RPC calls to the same inode (when sending WRITE calls, for instance), we may often miss updates.

This patch attempts to recover those missed updates by also accepting them if the ctime in the nfs_fattr is more recent than the inode's cached ctime. It also recovers the case where the file size has increased, but the ctime has not been updated due to limited ctime resolution.

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

linux-2.6.27-007-fix_nfs_revalidate_inode.dif:

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

Date:

NFS: Convert __nfs_revalidate_inode() to use nfs_refresh_inode()

In the case where there are parallel RPC calls to the same inode, we may receive stale metadata due to the lack of ordering, hence the sanity checking of metadata in nfs_refresh_inode(). Currently, __nfs_revalidate_inode() is calling nfs_update_inode() directly, without any further sanity checks, and hence may end up setting the inode up with stale metadata.

Fix is to use nfs_refresh_inode() instead of nfs_update_inode().

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

linux-2.6.27-008-udp_connect.dif:

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

Date: Tue, 15 Jul 2008 17:58:17 -0400

SUNRPC: Add connected sockets for UDP

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

linux-2.6.27-009-cleanup_rpc_exit.dif:

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

Date: Tue, 15 Jul 2008 17:58:18 -0400

SUNRPC: Ensure that rpc_exit() always wakes up a sleeping task

Make rpc_exit() non-inline, and ensure that it always wakes up a task that has been queued.

Kill off the now unused rpc_wake_up_task().

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

linux-2.6.27-010-cleanup_rpc_set_active.dif:

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

Date: Tue, 15 Jul 2008 17:58:20 -0400

SUNRPC: Move remaining RPC client related task initialisation into clnt.c

Now that rpc_run_task() is the sole entry point for RPC calls, we can move the remaining rpc_client-related initialisation of struct rpc_task from sched.c into clnt.c.

Also move rpc_killall_tasks() into the same file, since that too is relative to the rpc_clnt.

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

linux-2.6.27-011-cleanup_rpc_bind_cred.dif:

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

Date: Tue, 15 Jul 2008 17:58:22 -0400

SUNRPC: Clean up of rpc_bindcred()

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

linux-2.6.27-012-constify_rpc_clnt_char_pointers.dif:

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

Date: Fri, 15 Aug 2008 17:02:38 -0400

SUNRPC: constify rpc_clnt fields cl_server and cl_protname

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

linux-2.6.27-013-constify_rpc_program_name.dif:

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

Date: Fri, 15 Aug 2008 17:02:38 -0400

SUNRPC: constify rpc_program->name

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

linux-2.6.27-014-constify_rpc_prog_info.dif:

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

Date: Fri, 15 Aug 2008 17:02:39 -0400

SUNRPC: constify the rpc_program and procedure info

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

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.27-001-fix..>2008-09-16 22:23 1.5K 
[TXT]linux-2.6.27-002-cle..>2008-09-16 22:23 4.8K 
[TXT]linux-2.6.27-003-str..>2008-09-16 22:23 1.7K 
[TXT]linux-2.6.27-004-don..>2008-09-16 22:23 1.8K 
[TXT]linux-2.6.27-005-loo..>2008-09-16 22:23 2.7K 
[TXT]linux-2.6.27-006-fix..>2008-09-16 22:23 1.9K 
[TXT]linux-2.6.27-007-fix..>2008-09-16 22:23 1.3K 
[TXT]linux-2.6.27-008-udp..>2008-07-15 21:59 7.0K 
[TXT]linux-2.6.27-009-cle..>2008-07-15 21:59 3.0K 
[TXT]linux-2.6.27-010-cle..>2008-07-15 21:59 7.9K 
[TXT]linux-2.6.27-011-cle..>2008-07-15 21:59 4.5K 
[TXT]linux-2.6.27-012-con..>2008-09-16 22:23 2.0K 
[TXT]linux-2.6.27-013-con..>2008-09-16 22:23 1.3K 
[TXT]linux-2.6.27-014-con..>2008-09-16 22:23 23K 
[   ]series 2008-09-16 22:23 700  

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