NFS client patches for Linux 2.6.25-rc2

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

linux-2.6.25-001-fix_f_flags_typo.dif:

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

Date: Mon, 25 Feb 2008 15:56:29 -0800

NFS: Fix an f_mode/f_flags confusion in fs/nfs/write.c

O_SYNC is stored in filp->f_flags. Thanks to Al Viro for pointing out the bug.

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

linux-2.6.25-002-fix_lazy_umount_deadlock.dif:

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

Date: Tue, 19 Feb 2008 20:04:20 -0500

NFS: Fix a deadlock with lazy umount

We can't allow rpc callback functions like task->tk_ops->rpc_call_prepare() and task->tk_ops->rpc_call_done() to call mntput() in any way, since that will cause a deadlock when the call to rpc_shutdown_client() attempts to wait on 'task' to complete.

We can avoid the above deadlock by moving calls to mntput to task->tk_ops->rpc_release() callback, since at that time the task will be marked as completed, and so rpc_shutdown_client won't attempt to wait on it.

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

linux-2.6.25-003-allow_asynchronous_execution_of_rpc_release.dif:

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

Date: Tue, 19 Feb 2008 20:04:21 -0500

SUNRPC: Allow the rpc_release() callback to be run on another workqueue

A lot of the work done by the rpc_release() callback is inappropriate for rpciod as it will often involve things like starting a new rpc call in order to clean up state after an interrupted NFSv4 open() call, or calls to mntput(), etc.

This patch allows the caller of rpc_run_task() to specify that the rpc_release callback should run on a different workqueue than the default rpciod_workqueue.

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

linux-2.6.25-004-add_nfsiod_workqueue.dif:

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

Date: Tue, 19 Feb 2008 20:04:22 -0500

NFS: Add an nfsiod workqueue

NFS post-rpciod cleanups often involve tasks that cannot be safely performed within the rpciod context (due to deadlock concerns). We therefore add a dedicated NFS workqueue that can perform tasks like cleaning up state after an interrupted NFSv4 open() call, or calling put_nfs_open_context() after an asynchronous read or write call.

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

linux-2.6.25-005-ensure_nfs_read_write_open_complete_on_nfsiod.dif:

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

Date: Tue, 19 Feb 2008 20:04:23 -0500

NFS: Ensure that the asynchronous RPC calls complete on nfsiod.

We want to ensure that rpc_call_ops that involve mntput() are run on nfsiod rather than on rpciod, so that they don't deadlock when the resulting umount calls rpc_shutdown_client(). Hence we specify that read, write and commit calls must complete on nfsiod. Ditto for NFSv4 open, lock, locku and close asynchronous calls.

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

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.25-001-fix..>2008-02-26 06:03 781  
[TXT]linux-2.6.25-002-fix..>2008-02-26 06:03 4.8K 
[TXT]linux-2.6.25-003-all..>2008-02-26 06:03 3.5K 
[TXT]linux-2.6.25-004-add..>2008-02-26 06:03 2.4K 
[TXT]linux-2.6.25-005-ens..>2008-02-26 06:03 4.4K 
[   ]series 2008-02-26 06:03 335  

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