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_refcount_for_nfs4_callback_thread.dif:

From: Jeff Layton <jlayton@redhat.com>

Date: Mon, 11 Feb 2008 10:00:20 -0500

NFS: fix reference counting for NFSv4 callback thread

The reference counting for the NFSv4 callback thread stays artificially high. When this thread comes down, it doesn't properly tear down the svc_serv, causing a memory leak. In my testing on an older kernel on x86_64, memory would leak out of the 8k kmalloc slab. So, we're leaking at least a page of memory every time the thread comes down.

svc_create() creates the svc_serv with a sv_nrthreads count of 1, and then svc_create_thread() increments that count. Whenever the callback thread is started it has a sv_nrthreads count of 2. When coming down, it calls svc_exit_thread() which decrements that count and if it hits 0, it tears everything down. That never happens here since the count is always at 2 when the thread exits.

The problem is that nfs_callback_up() should be calling svc_destroy() on the svc_serv on both success and failure. This is how lockd_up_proto() handles the reference counting, and doing that here fixes the leak.

Signed-off-by: Jeff Layton <jlayton@redhat.com>

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

linux-2.6.25-002-allow_text_based_mounts_via_compat_sys_mount.dif:

From: Chuck Lever <chuck.lever@oracle.com>

Date: Wed, 13 Feb 2008 14:55:17 -0500

NFS: Allow text-based mounts via compat_sys_mount

The compat_sys_mount() system call throws EINVAL for text-based NFSv4 mounts.

The text-based mount interface assumes that any mount option blob that doesn't set the version field to "1" is a C string (ie not a legacy mount request). The compat_sys_mount() call treats blobs that don't set the version field to "1" as an error. We just relax the check in compat_sys_mount() a bit to allow C strings to be passed down to the NFSv4 client.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

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

linux-2.6.25-003-fix_missing_spaces_in_bad_seqid_warning.dif:

From: Dan Muntz <dmuntz@netapp.com>

Date: Wed, 13 Feb 2008 13:09:35 -0800

NFS: missing spaces in KERN_WARNING

The warning message for a v4 server returning various bad sequence-ids is missing spaces.

Signed-off-by: Dan Muntz <dmuntz@netapp.com>

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

linux-2.6.25-004-remove_unused_readdir_error_field.dif:

From: Jeff Layton <jlayton@redhat.com>

Date: Tue, 12 Feb 2008 06:49:01 -0500

NFS: remove error field from nfs_readdir_descriptor_t

The error field in nfs_readdir_descriptor_t is never used outside of the function in which it is set. Remove the field and change the place that does use it to use an existing local variable.

Signed-off-by: Jeff Layton <jlayton@redhat.com>

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

linux-2.6.25-005-fix_missing_spkm3_mount_values.dif:

From: Olga Kornievskaia <aglo@citi.umich.edu>

Date: Wed, 13 Feb 2008 16:47:06 -0500

NFS: add missing spkm3 strings to mount option parser

This patch adds previous missing spkm3 string values that are needed to parse mount options in the kernel.

linux-2.6.25-006-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

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-007-make_rpc_message_arguments_const.dif:

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

Date: Thu, 14 Feb 2008 11:11:30 -0500

SUNRPC: Declare as const the rpc_message arguments to rpc_call_sync/async

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

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.25-001-fix..>2008-02-15 18:21 2.6K 
[TXT]linux-2.6.25-002-all..>2008-02-15 18:21 1.0K 
[TXT]linux-2.6.25-003-fix..>2008-02-15 18:21 967  
[TXT]linux-2.6.25-004-rem..>2008-02-15 18:21 1.6K 
[TXT]linux-2.6.25-005-fix..>2008-02-15 18:21 699  
[TXT]linux-2.6.25-006-nfs..>2008-02-15 18:21 3.0K 
[TXT]linux-2.6.25-007-mak..>2008-02-15 18:21 2.1K 
[   ]series 2008-02-15 18:21 496  

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