NFS client patches for Linux 2.6.26-rc5

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

linux-2.6.26-001-protect_nlink.dif:

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

Date: Wed, 11 Jun 2008 15:44:04 -0400

NFS: Protect inode->i_nlink updates using inode->i_lock

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

linux-2.6.26-002-remove_bkl_requirement_from_attributes.dif:

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

Date: Wed, 11 Jun 2008 12:21:19 -0400

NFS: Remove BKL requirement from attribute updates

The main problem is dealing with inode->i_size: we need to set the inode->i_lock on all attribute updates, and so vmtruncate won't cut it. Make an NFS-private version of vmtruncate that has the necessary locking semantics.

The result should be that the following inode attribute updates are protected by inode->i_lock nfsi->cache_validity nfsi->read_cache_jiffies nfsi->attrtimeo nfsi->attrtimeo_timestamp nfsi->change_attr nfsi->last_updated nfsi->cache_change_attribute nfsi->access_cache nfsi->access_cache_entry_lru nfsi->access_cache_inode_lru nfsi->acl_access nfsi->acl_default nfsi->nfs_page_tree nfsi->ncommit nfsi->npages nfsi->open_files nfsi->silly_list nfsi->acl nfsi->open_states inode->i_size inode->i_atime inode->i_mtime inode->i_ctime inode->i_nlink inode->i_uid inode->i_gid

The following is protected by dir->i_mutex nfsi->cookieverf

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

linux-2.6.26-003-remove_attribute_related_bkl.dif:

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

Date: Wed, 11 Jun 2008 13:26:14 -0400

NFS: Remove attribute update related BKL references

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

linux-2.6.26-004-remove_access_bkl.dif:

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

Date: Wed, 11 Jun 2008 15:44:18 -0400

NFS: Remove the BKL from the permission checking code

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

linux-2.6.26-005-remove_write_bkl.dif:

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

Date: Wed, 11 Jun 2008 13:26:16 -0400

NFS: Remove BKL usage from the write path

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

linux-2.6.26-006-remove_open_bkl.dif:

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

Date: Wed, 11 Jun 2008 13:26:23 -0400

NFS: Remove BKL usage from open()

All the NFSv4 stateful operations are already protected by other locks (in particular by the rpc_sequence locks.

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

linux-2.6.26-007-remove_create_bkl.dif:

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

Date: Wed, 11 Jun 2008 15:50:50 -0400

NFS: Remove the BKL from the inode creation operations

nfs_instantiate() does not require the BKL, neither do the attribute updates or the RPC code.

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

linux-2.6.26-008-remove_link_bkl.dif:

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

Date: Wed, 11 Jun 2008 15:52:40 -0400

NFS: Remove the BKL from nfs_link()

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

linux-2.6.26-009-remove_lookup_bkl.dif:

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

Date: Wed, 11 Jun 2008 15:44:20 -0400

NFS: Remove BKL from NFS lookup code

All dentry-related operations are already BKL-safe, since they are protected by the VFS locking. No extra locks should be needed in the NFS code.

In the case of nfs_revalidate_inode(), we're only doing an attribute update (protected by the inode->i_lock). In the case of nfs_lookup(), we're instantiating a new dentry, so there should be no contention possible until after we call d_materialise_unique.

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

linux-2.6.26-010-remove_unlink_bkl.dif:

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

Date: Wed, 11 Jun 2008 16:09:59 -0400

NFS: Remove the BKL from the rename, rmdir and unlink operations

Attribute updates are safe, and dentry operations are protected using VFS level locks. Defer removing the BKL from sillyrename until a separate patch.

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

linux-2.6.26-011-remove_sillydelete_bkl.dif:

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

Date: Wed, 11 Jun 2008 15:44:21 -0400

NFS: Remove BKL from the sillydelete operations

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

linux-2.6.26-012-remove_symlink_bkl.dif:

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

Date: Wed, 11 Jun 2008 15:44:22 -0400

NFS: Remove BKL from the symlink code

Page cache accesses are serialised using page locks, whereas attribute updates are serialised using inode->i_lock.

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

linux-2.6.26-013-remove_readdir_bkl.dif:

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

Date: Wed, 11 Jun 2008 15:44:23 -0400

NFS: Remove BKL from the readdir code

Page accesses are serialised using the page locks, whereas all attribute updates are serialised using the inode->i_lock.

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

linux-2.6.26-014-remove_sunrpc_bkl.dif:

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

Date: Wed, 11 Jun 2008 13:37:09 -0400

SUNRPC: Remove the BKL from the callback functions

Push it into those callback functions that actually need it.

Note that all the NFS operations use their own locking, so don't need the BKL. Ditto for the rpcbind client.

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

linux-2.6.26-015-remove_nfs4_state_recovery_bkl.dif:

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

Date: Wed, 11 Jun 2008 15:44:26 -0400

NFSv4: Remove BKL from the nfsv4 state recovery

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

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.26-001-pro..>2008-06-12 19:41 1.3K 
[TXT]linux-2.6.26-002-rem..>2008-06-12 19:41 5.4K 
[TXT]linux-2.6.26-003-rem..>2008-06-12 19:41 1.9K 
[TXT]linux-2.6.26-004-rem..>2008-06-12 19:41 1.0K 
[TXT]linux-2.6.26-005-rem..>2008-06-12 19:41 682  
[TXT]linux-2.6.26-006-rem..>2008-06-12 19:41 2.2K 
[TXT]linux-2.6.26-007-rem..>2008-06-12 19:41 1.6K 
[TXT]linux-2.6.26-008-rem..>2008-06-12 19:41 815  
[TXT]linux-2.6.26-009-rem..>2008-06-12 19:41 2.3K 
[TXT]linux-2.6.26-010-rem..>2008-06-12 19:41 2.6K 
[TXT]linux-2.6.26-011-rem..>2008-06-12 19:41 1.3K 
[TXT]linux-2.6.26-012-rem..>2008-06-12 19:41 1.2K 
[TXT]linux-2.6.26-013-rem..>2008-06-12 19:41 1.0K 
[TXT]linux-2.6.26-014-rem..>2008-06-12 19:41 4.3K 
[TXT]linux-2.6.26-015-rem..>2008-06-12 19:41 898  
[   ]series 2008-06-12 19:41 705  

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