NFS client patches for Linux 2.6.23-rc1

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

linux-2.6.23-001-fix_rpciod_down_race.dif:

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

Date: Thu, 19 Jul 2007 16:32:20 -0400

SUNRPC: Fix a race in rpciod_down()

The commit 4ada539ed77c7a2bbcb75cafbbd7bd8d2b9bef7b lead to the unpleasant possibility of an asynchronous rpc_task being required to call rpciod_down() when it is complete. This again means that the rpciod workqueue may get to call destroy_workqueue on itself -> hang...

Change rpciod_up/rpciod_down to just get/put the module, and then create/destroy the workqueues on module load/unload.

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

linux-2.6.23-002-fix_put_nfs_open_context.dif:

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

Date: Thu, 26 Jul 2007 12:06:17 -0400

NFS: Fix put_nfs_open_context

We need to grab the inode->i_lock atomically with the last reference put in order to remove the open context that is being freed from the nfsi->open_files list.

Fix by converting the kref to a standard atomic counter and then using atomic_dec_and_lock()...

Thanks to Arnd Bergmann for pointing out the problem.

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

linux-2.6.23-003-fix_locking_regression.dif:

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

Date: Fri, 27 Jul 2007 10:23:05 -0400

NFSv4: Fix a locking regression in nfs4_set_mode_locked()

We don't really need to clear &state->inode_states inside nfs4_set_mode_locked, and doing so without holding the inode->i_lock would in any case be a bug...

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

linux-2.6.23-004-fix_stateid_regression.dif:

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

Date: Thu, 26 Jul 2007 17:47:34 -0400

NFS: Fix NFSv4 open stateid regressions

Do not allow cached open for O_RDONLY or O_WRONLY unless the file has been previously opened in these modes.

Also Fix the calculation of the mode in nfs4_close_prepare. We should only issue an OPEN_DOWNGRADE if we're sure that we will still be holding the correct open modes. This may not be the case if we've been doing delegated opens.

Finally, there is no need to adjust the open mode bit flags in nfs4_close_done(): that has already been done in nfs4_close_prepare().

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

linux-2.6.23-NFS_ALL.dif:

All of the above

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.23-001-fix..>2007-07-27 14:24 2.9K 
[TXT]linux-2.6.23-002-fix..>2007-08-07 20:13 2.5K 
[TXT]linux-2.6.23-003-fix..>2007-07-27 14:24 1.2K 
[TXT]linux-2.6.23-004-fix..>2007-07-27 14:24 3.2K 
[TXT]linux-2.6.23-NFS_ALL..>2007-07-27 16:42 7.7K 
[   ]series 2007-07-27 16:36 253  

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