NFS client patches for Linux 2.6.16-rc1

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

linux-2.6.16-01-update_v4_attr.dif:

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

NFSv4: Don't invalidate cached attributes if change attribute is unchanged

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

linux-2.6.16-02-cache_consistency.dif:

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

NFS: reduce the number of false cache invalidations.

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

linux-2.6.16-03-request_flavour.dif:

Author: Olaf Kirch <okir@suse.de>

SUNRPC: Auto-load RPC authentication kernel modules

Summary: Auto-load RPC authentication kernel modules (client-side)

This patch adds a request_module call to rpcauth_create which will try to auto-load the kernel module for the requested authentication flavor. For kernels with modular sunrpc, this reduces the admin overhead for the user.

Signed-off-by: Olaf Kirch <okir@suse.de>

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

linux-2.6.16-04-fix_cancel_args.dif:

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

NLM: Fix arguments to NLM_CANCEL call

The OpenGroup docs state that the arguments "block", "exclusive" and "alock" must exactly match the arguments for the lock call that we are trying to cancel. Currently, "block" is always set to false, which is wrong.

See bug# 5956 on bugzilla.kernel.org.

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

linux-2.6.16-05-fix_cancel_retry.dif:

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

NLM: Ensure that nlmclnt_cancel_callback() doesn't loop forever

If the server returns NLM_LCK_DENIED_NOLOCKS, we currently retry the entire NLM_CANCEL request. This may end up looping forever unless the server changes its mind (why would it do that, though?).

Ensure that we limit the number of retries (to 3).

See bug# 5957 in bugzilla.kernel.org.

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

linux-2.6.16-06-gss_lock_recursion.dif:

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

SUNRPC: Fix a lock recursion in the auth_gss downcall

When we look up a new cred in the auth_gss downcall so that we can stuff the credcache, we do not want that lookup to queue up an upcall in order to initialise it. To do an upcall here not only redundant, but since we are already holding the inode->i_mutex, it will trigger a lock recursion.

This patch allows rpcauth cache searches to indicate that they can cope with uninitialised credentials.

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

linux-2.6.16-07-cleanup_rpcauth.dif:

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

SUNRPC: Remove obsolete rpcauth #defines

RPCAUTH_CRED_LOCKED, and RPC_AUTH_PROC_CREDS are unused. Kill them.

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

linux-2.6.16-08-gss_upcall_dontblock.dif:

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

SUNRPC: rpc_timeout_upcall_queue should not sleep

The function rpc_timeout_upcall_queue runs from a workqueue, and hence sleeping is not recommended. Convert the protection of the upcall queue from being mutex-based to being spinlock-based.

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

linux-2.6.16-09-rpc_pipefs_workqueue.dif:

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

SUNRPC: Run rpci->queue_timeout on the rpciod workqueue instead of generic

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

linux-2.6.16-10-fix_odirect_nosync.dif:

Author: Dirk Mueller <dmueller@suse.com>

NFSv3: fix sync_retry in direct i/o NFS

Only do a sync_retry if the memcmp failed.

Signed-off-by: Dirk Mueller <dmueller@suse.com>

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

linux-2.6.16-11-fix_lookup_continue.dif:

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

VFS: Ensure LOOKUP_CONTINUE flag is preserved by link_path_walk()

When walking a path, the LOOKUP_CONTINUE flag is used by some filesystems (for instance NFS) in order to determine whether or not it is looking up the last component of the path. It this is the case, it may have to look at the intent information in order to perform various tasks such as atomic open.

A problem currently occurs when link_path_walk() hits a symlink. In this case LOOKUP_CONTINUE may be cleared prematurely when we hit the end of the path passed by __vfs_follow_link() (i.e. the end of the symlink path) rather than when we hit the end of the path passed by the user.

The solution is to have link_path_walk() clear LOOKUP_CONTINUE if and only if that flag was unset when we entered the function.

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

linux-2.6.16-12-lookup_hash_removal.dif:

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

SUNRPC: Remove the deprecated function lookup_hash() from rpc_pipefs code

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

linux-2.6.16-13-separate_upcall.dif:

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

SUNRPC: Move upcall out of auth->au_ops->crcreate()

This fixes a bug whereby if two processes try to look up the same auth_gss credential, they may end up creating two creds, and triggering two upcalls because the upcall is performed before the credential is added to the credcache.

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

linux-2.6.16-14-rpc_pipe_dentry.dif:

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

SUNRPC: Ensure that rpc_mkpipe returns a refcounted dentry

If not, we cannot guarantee that idmap->idmap_dentry, gss_auth->dentry and clnt->cl_dentry are valid dentries.

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

linux-2.6.16-15-rpciod_down_fix.dif:

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

NFSv4: Do not call rpciod_down() before call to destroy_nfsv4_state()

The reason is that the idmapper cleanup may call flush_workqueue() on rpciod_workqueue.

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

linux-2.6.16-NFS_ALL.dif:

All of the above

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.16-01-upda..>2006-01-19 06:06 3.6K 
[TXT]linux-2.6.16-02-cach..>2006-01-19 06:06 913  
[TXT]linux-2.6.16-03-requ..>2006-02-01 00:09 1.4K 
[TXT]linux-2.6.16-04-fix_..>2006-01-25 17:11 2.6K 
[TXT]linux-2.6.16-05-fix_..>2006-01-25 17:11 1.6K 
[TXT]linux-2.6.16-06-gss_..>2006-01-31 19:17 7.3K 
[TXT]linux-2.6.16-07-clea..>2006-01-19 21:58 1.0K 
[TXT]linux-2.6.16-08-gss_..>2006-02-01 05:50 5.4K 
[TXT]linux-2.6.16-09-rpc_..>2006-02-02 19:29 2.0K 
[TXT]linux-2.6.16-10-fix_..>2006-01-19 06:06 700  
[TXT]linux-2.6.16-11-fix_..>2006-02-02 19:29 1.7K 
[TXT]linux-2.6.16-12-look..>2006-02-01 05:50 1.3K 
[TXT]linux-2.6.16-13-sepa..>2006-01-31 19:41 2.9K 
[TXT]linux-2.6.16-14-rpc_..>2006-02-01 05:51 2.5K 
[TXT]linux-2.6.16-15-rpci..>2006-02-02 19:29 780  
[TXT]linux-2.6.16-NFS_ALL..>2006-02-02 19:33 26K 

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