NFS client patches for Linux 2.6.20

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

linux-2.6.20-001-fix_nlm_async_call.dif:

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

Date: Fri, 2 Feb 2007 15:37:43 -0800

NLM: Fix double free in __nlm_async_call

rpc_call_async() will always call rpc_release_calldata(), so it is an error for __nlm_async_call() to do so as well.

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

linux-2.6.20-002-fix_pmap_double_free.dif:

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

Date: Sat, 3 Feb 2007 13:38:40 -0800

RPC: Fix double free in portmapper code

rpc_run_task is guaranteed to always call ->rpc_release.

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

linux-2.6.20-003-cleanup_rpc_execute.dif:

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

Date: Sat, 3 Feb 2007 13:38:41 -0800

RPC: Clean up rpc_execute...

The error values are already propagated through task->tk_status, and none of the callers check one without checking the other, so we can drop the return value.

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

linux-2.6.20-004-fix_referral_oops.dif:

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

Date: Fri, 2 Feb 2007 14:46:09 -0800

NFSv4: Fix Oops in nfs4_create_referral_server

The filehandle that is passed into nfs4_create_referral_server is not initialised. The expectation is that nfs4_create_referral_server will initialise it, and return it to the caller.

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

linux-2.6.20-005-fix_nfs4_xdr_enc_server_caps.dif:

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

Date: Fri, 2 Feb 2007 14:47:17 -0800

NFSv4: Fix NFS4_enc_server_caps_sz/NFS4_dec_server_caps_sz

Insert missing encode_putfh_maxsz/decode_putfh_maxsz

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

linux-2.6.20-006-fix_rm_rf.dif:

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

Date: Sat, 13 Jan 2007 02:28:12 -0500

NFS: Fix up "rm -rf"...

When a file is being scheduled for deletion by means of the sillyrename mechanism, it makes sense to start out writeback of the dirty data as soon as possible in order to ensure that the delete can occur. Examples of cases where this is an issue include "rm -rf", which will busy-wait until the file is closed, and the sillyrename completes.

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

linux-2.6.20-007-fix_readdir_negative_dentry.dif:

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

Date: Mon, 15 Jan 2007 13:56:29 -0500

NFS: Fix a readdir/lookup inefficiency.

Make sure that nfs_readdir_lookup() handles negative dentries correctly. If d_lookup() returns a negative dentry, then we need to d_drop() that since readdir shows that it should be positive.

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

linux-2.6.20-008-fix_readdir_positive_dentry.dif:

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

Date: Tue, 16 Jan 2007 10:09:44 -0500

NFS: Also use readdir info to revalidate positive dentries

If the fileid of the cached dentry fails to match that returned by the readdir call, then we should also d_drop. Try to take into account the fact that on NFSv4, readdir may return the "mounted_on_fileid" by looking for submounts.

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

linux-2.6.20-009-dont_scribble_on_verifier.dif:

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

Date: Wed, 31 Jan 2007 08:16:24 -0500

NFS: Dont clobber more uptodate values in nfs_set_verifier()

nfs_lookup_revalidate and friends are not serialised, so it is currently quite possible for the dentry to be revalidated, and then have the updated verifier replaced with an older value by another process.

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

linux-2.6.20-010-dont_require_slash_in_v4_path.dif:

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

Date: Sat, 13 Jan 2007 02:28:11 -0500

NFSv4: Don't require that NFSv4 mount paths begin with '/'

Addresses the regression noted in http://bugzilla.linux-nfs.org/show_bug.cgi?id=134

Also mark a couple of other regressions as requiring fixing.

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

linux-2.6.20-011-cleanup_fs_locations.dif:

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

Date: Sat, 13 Jan 2007 02:28:11 -0500

NFSv4: Cleanups for fs_locations code.

Start long arduous project... What the hell is

struct dentry = {};

all about?

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

linux-2.6.20-012-remove_nfs_readpage_sync.dif:

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

Date: Wed, 13 Dec 2006 15:23:44 -0500

NFS: Remove nfs_readpage_sync()

It makes no sense to maintain 2 parallel systems for reading in pages.

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

linux-2.6.20-013-page_laundering.dif:

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

Date: Sat, 13 Jan 2007 02:28:07 -0500

NFS: Ensure that ->writepage() uses flush_stable() when reclaiming pages

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

linux-2.6.20-014-nfs_wb_page_optimisation.dif:

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

Date: Sat, 13 Jan 2007 02:28:08 -0500

NFS: Micro-optimisation for nfs_wb_page()

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

linux-2.6.20-015-simplify_writepages.dif:

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

Date: Wed, 13 Dec 2006 15:23:47 -0500

NFS: nfs_writepages() cleanup

Strip out the call to nfs_commit_inode(), and allow that to be done by nfs_write_inode().

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

linux-2.6.20-016-fixup_comments.dif:

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

Date: Wed, 13 Dec 2006 15:23:48 -0500

NFS: Fixup some outdated comments...

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

linux-2.6.20-017-dont_recover_state_on_close.dif:

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

Date: Wed, 13 Dec 2006 16:43:06 -0500

NFSv4: Don't start state recovery in nfs4_close_done()

We might not even have any open files at this point...

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

linux-2.6.20-018-check_deadlocks_on_client_recovery.dif:

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

Date: Wed, 13 Dec 2006 16:43:13 -0500

NFSv4: Add lockdep checks to nfs4_wait_clnt_recover()

Attempt to detect deadlocks due to caller holding locks on clp->cl_sem

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

linux-2.6.20-019-move_nfs_debug_definition.dif:

From: Benny Halevy <bhalevy@panasas.com>

Date: Wed, 20 Dec 2006 22:29:46 +0200

NFS: move NFS_DEBUG definition

Trond, looks like the changes to include/linux/nfs_fs.h in 2.6.18 that moved the #include's of sunrpc header files into the #ifdef __KERNEL__ block disabled nfs debugging for all nfs c file not including any sunrpc header.

The following patch moves the definition down, right before its use for defining ifdebug.

Signed-off-by: Benny Halevy <bhalevy@panasas.com> (Moved definition further down into the __KERNEL__ section: Trond)

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

linux-2.6.20-020-fix_print_format_for_tk_pid.dif:

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

Date: Wed, 31 Jan 2007 12:14:01 -0500

NFS: fix print format for tk_pid

The tk_pid field is an unsigned short. The proper print format specifier for that type is %5u, not %4d.

Also clean up some miscellaneous print formatting nits.

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

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

linux-2.6.20-021-fix_print_format_for_tk_pid_in_auth_gss_support.dif:

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

Date: Wed, 31 Jan 2007 12:14:05 -0500

SUNRPC: fix print format for tk_pid in auth_gss support

The tk_pid field is an unsigned short. The proper print format specifier for that type is %5u, not %4d.

Also clean up some miscellaneous print formatting nits.

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

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

linux-2.6.20-022-fix_print_format_for_tk_pid.dif:

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

Date: Wed, 31 Jan 2007 12:14:08 -0500

SUNRPC: fix print format for tk_pid

The tk_pid field is an unsigned short. The proper print format specifier for that type is %5u, not %4d.

Also clean up some miscellaneous print formatting nits.

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

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

linux-2.6.20-023-enable_referral_for_non_root.dif:

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

Date: Fri, 2 Feb 2007 15:56:06 -0800

NFSv4: Ensure non-root user can trigger a referral automount

Currently only root can trigger a referral automount because only root can access rpc_pipefs directories. Enabling read access to non-root should be harmless (they can still not access the pipes themselves) and will suffice to fix this problem.

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

linux-2.6.20-024-referral_fix_proc_mounts.dif:

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

Date: Fri, 2 Feb 2007 17:41:53 -0800

NFSv4: /proc/mounts displays the wrong server name for referrals

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

linux-2.6.20-025-fix_invalidate_inode_pages2_range_return.dif:

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

Date: Sat, 13 Jan 2007 02:28:13 -0500

VM: invalidate_inode_pages2_range() should not exit early

Fix invalidate_inode_pages2_range() so that it does not immediately exit just because a single page in the specified range could not be removed.

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

linux-2.6.20-026-invalidate_inode_pages2_dont_fail_on_dirty.dif:

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

Date: Sat, 13 Jan 2007 02:28:13 -0500

VM: invalidate_inode_pages2_range() shouldn't fail on page dirty...

invalidate_inode_pages2() should not try to fix races between direct_IO and mmap(). It should only be trying to clear out pages that were dirty before the direct_IO write (see generic_file_direct_IO()). Skipping dirty pages should therefore not result in an error.

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

linux-2.6.20-027-fix_nfs_congestion_control_v4.dif:

From: Peter Zijlstra <a.p.zijlstra@chello.nl>

Date: Thu, 25 Jan 2007 16:32:28 +0100

NFS: fix congestion control

The current NFS client congestion logic is severly broken, it marks the backing device congested during each nfs_writepages() call but doesn't mirror this in nfs_writepage() which makes for deadlocks. Also it implements its own waitqueue.

Replace this by a more regular congestion implementation that puts a cap on the number of active writeback pages and uses the bdi congestion waitqueue.

Also always use an interruptible wait since it makes sense to be able to SIGKILL the process even for mounts without 'intr'.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>

Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>

linux-2.6.20-NFS_ALL.dif:

All of the above

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.20-001-fix..>2007-02-08 00:40 1.7K 
[TXT]linux-2.6.20-002-fix..>2007-02-08 00:40 1.2K 
[TXT]linux-2.6.20-003-cle..>2007-02-08 00:40 3.2K 
[TXT]linux-2.6.20-004-fix..>2007-02-08 00:40 1.8K 
[TXT]linux-2.6.20-005-fix..>2007-02-08 00:40 922  
[TXT]linux-2.6.20-006-fix..>2007-01-24 18:21 1.0K 
[TXT]linux-2.6.20-007-fix..>2007-01-24 18:21 1.1K 
[TXT]linux-2.6.20-008-fix..>2007-01-26 16:18 1.5K 
[TXT]linux-2.6.20-009-don..>2007-02-08 00:40 2.5K 
[TXT]linux-2.6.20-010-don..>2007-01-24 18:21 1.9K 
[TXT]linux-2.6.20-011-cle..>2007-01-26 16:18 3.9K 
[TXT]linux-2.6.20-012-rem..>2007-01-26 16:18 9.0K 
[TXT]linux-2.6.20-013-pag..>2007-01-24 18:21 681  
[TXT]linux-2.6.20-014-nfs..>2007-01-24 18:21 613  
[TXT]linux-2.6.20-015-sim..>2007-01-24 18:21 2.6K 
[TXT]linux-2.6.20-016-fix..>2006-12-21 01:33 2.5K 
[TXT]linux-2.6.20-017-don..>2007-01-26 16:18 1.3K 
[TXT]linux-2.6.20-018-che..>2007-01-26 16:18 898  
[TXT]linux-2.6.20-019-mov..>2007-02-08 00:40 1.5K 
[TXT]linux-2.6.20-020-fix..>2007-02-08 00:40 3.9K 
[TXT]linux-2.6.20-021-fix..>2007-02-08 00:40 20K 
[TXT]linux-2.6.20-022-fix..>2007-02-08 00:40 52K 
[TXT]linux-2.6.20-023-ena..>2007-02-08 00:40 1.0K 
[TXT]linux-2.6.20-024-ref..>2007-02-08 00:40 1.5K 
[TXT]linux-2.6.20-025-fix..>2007-02-08 00:40 1.0K 
[TXT]linux-2.6.20-026-inv..>2007-02-08 00:40 1.6K 
[TXT]linux-2.6.20-027-fix..>2007-02-03 23:35 12K 
[TXT]linux-2.6.20-NFS_ALL..>2007-02-03 23:36 117K 
[   ]series 2007-02-03 23:35 1.3K 

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