NFS client patches for Linux 2.6.22-rc3

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

linux-2.6.22-001-odirect_refcount_fix.dif:

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

Date: Wed, 30 May 2007 12:58:00 -0400

NFS: Fix a refcount leakage in O_DIRECT

The current code is leaking a reference to dreq->kref when the calls to nfs_direct_read_schedule() and nfs_direct_write_schedule() return an error. This patch moves the call to kref_put() from nfs_direct_wait() back into nfs_direct_read() and nfs_direct_write() (which are the functions that actually took the reference in the first place) fixing the leak.

Thanks to Denis V. Lunev for spotting the bug and proposing the original fix.

Acked-by: Denis V. Lunev <dlunev@gmail.com>

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

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

linux-2.6.22-002-odirect_cleanup.dif:

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

Date: Sat, 19 May 2007 17:22:52 -0400

NFS: Clean ups in fs/nfs/direct.c

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

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

linux-2.6.22-003-odirect_accept_short_get_user_pages.dif:

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

Date: Tue, 22 May 2007 10:22:20 -0400

NFS: Don't fail an O_DIRECT read/write if get_user_pages() returns pages

There is no need to fail the entire O_DIRECT read/write just because get_user_pages() returned fewer pages than we requested.

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

linux-2.6.22-004-fix_uptodate_write.dif:

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

Date: Sat, 19 May 2007 11:58:03 -0400

NFS: Don't mark a written page as uptodate until it is on disk

The write may fail, so we should not mark the page as uptodate until we are certain that the data has been accepted and written to disk by the server.

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

linux-2.6.22-005-read_optimisation.dif:

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

Date: Sun, 20 May 2007 13:05:05 -0400

NFS: Minor read optimisation...

Since PG_uptodate may now end up getting set during the call to nfs_wb_page(), we can avoid putting a read request on the wire in those situations.

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

linux-2.6.22-006-mount_noshared.dif:

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

Date: Wed, 16 May 2007 16:53:28 -0400

NFS: Add the mount option "nosharecache"

Prior to David Howell's mount changes in 2.6.18, users who mounted different directories which happened to be from the same filesystem on the server would get different super blocks, and hence could choose different mount options. As long as there were no hard linked files that crossed from one subtree to another, this was quite safe. Post the changes, if the two directories are on the same filesystem (have the same 'fsid'), they will share the same super block, and hence the same mount options.

Add a flag to allow users to elect not to share the NFS super block with another mount point, even if the fsids are the same. This will allow users to set different mount options for the two different super blocks, as was previously possible. It is still up to the user to ensure that there are no cache coherency issues when doing this, however the default behaviour will be to share super blocks whenever two paths result in the same fsid.

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

linux-2.6.22-007-mount_shared_return_error.dif:

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

Date: Wed, 16 May 2007 16:53:28 -0400

NFS: Error when mounting the same filesystem with different options

Unless the user sets the NFS_MOUNT_NOSHAREDCACHE mount flag, we should return EBUSY if the filesystem is already mounted on a superblock that has set conflicting mount options.

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

linux-2.6.22-008-gss_triple_to_pseudoflavor.dif:

From: Andy Adamson <andros@umich.edu>

Date: Fri, 18 May 2007 16:52:39 -0400

SUNRPC: Add a helper function to convert a GSS triple into pseudoflavor

Helper function for OP_SECINFO. Return the pseudoflavor for a supported security mechanism OID, qop, and service. Return RPC_AUTH_MAXFLAVOR upon failure.

Signed-off-by: Andy Adamson <andros@citi.umich.edu>

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

linux-2.6.22-009-nfs_secinfo_xdr.dif:

From: Andy Adamson <andros@umich.edu>

Date: Fri, 18 May 2007 16:52:40 -0400

NFSv4: Add the NFS SECINFO xdr encode/decode routines

Encode and decode routines for OP_SECINFO. Decode routine saves an orderd list of up to NFS4_SECINFO_MAXFLAVORS server supplied pseudoflavors supported on the client.

Signed-off-by: Andy Adamson <andros@citi.umich.edu>

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

linux-2.6.22-010-return_untried_security_flavor.dif:

From: Andy Adamson <andros@umich.edu>

Date: Fri, 18 May 2007 16:52:41 -0400

NFSv4: Add a helper to return the next untried security flavor

Helper function for NFS4ERR_WRONGSEC handler Returns RPC_AUTH_MAXFLAVOR when all flavors have been tried.

Signed-off-by: Andy Adamson <andros@citi.umich.edu>

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

linux-2.6.22-011-obtain_an_rpc_credential_for_nfs4err_wrongsec_handler.dif:

From: Andy Adamson <andros@umich.edu>

Date: Fri, 18 May 2007 16:52:42 -0400

NFSv4: Obtain an RPC credential for NFS4ERR_WRONGSEC handler

Helper function for WRONGSEC handler

Signed-off-by: Andy Adamson <andros@citi.umich.edu>

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

linux-2.6.22-012-try_each_security_flavor_in_wrongsec_list.dif:

From: Andy Adamson <andros@umich.edu>

Date: Fri, 18 May 2007 16:52:43 -0400

NFSv4: Try each security flavor in WRONGSEC list

Main function for NFS4ERR_WRONGSEC handling. Success returns zero with ex_cred set and ready for exception retry.

Use a private rpc_clnt to obtain credentials for a flavor in the list.

An rpc_clnt and not an rpc_auth is created and destroyed upon each attempt to get a credential due to the RPC_AUTH_GSS upcall pipe creation/destruction and rpc.gssd notification.

NOTE: We could update rpc.gssd to do the right thing when the pipe file goes away, and then we could keep the ex_clnt around and get creds with new rpc_auth's.

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

linux-2.6.22-013-nfs_secinfo_proc.dif:

From: Andy Adamson <andros@umich.edu>

Date: Fri, 18 May 2007 16:52:44 -0400

NFSv4: Add the NFS SECINFO proc

Place the secinfo call on the wire

Signed-off-by: Andy Adamson <andros@citi.umich.edu>

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

linux-2.6.22-014-collect_secinfo_parameters_for_nfs_lookup_wrongsec_handling.dif:

From: Andy Adamson <andros@umich.edu>

Date: Fri, 18 May 2007 16:52:45 -0400

NFSv4: Collect SECINFO parameters for nfs_lookup WRONGSEC handling

Add an exception structure to __nfs4_proc_lookup and to the lookup XDR result structure and collect the operation, directory filehandle, and name needed to call SECINFO on WRONGSEC error.

NOTE: The WRONGSEC error could have (incorrectly) been on the PUTFH, but we don't care.

Signed-off-by: Andy Adamson <andros@citi.umich.edu>

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

linux-2.6.22-015-handle_nfs4err_wrongsec_for_nfs4_proc_lookup.dif:

From: Andy Adamson <andros@umich.edu>

Date: Fri, 18 May 2007 16:52:46 -0400

NFSv4: Handle NFS4ERR_WRONGSEC in nfs4_proc_lookup

The first time through the wrongsec handler, setup the ex_list via a secinfo call. The existance of ex_list signals to skip setup and try the next flavor on the list, which will only occur if the server secinfo list is incorret, or if we are trying a list of flavors (from mount) on a PUTROOTFH/PUTFH WRONGSEC.

Free the wrongsec handler resources upon success. NOTE: future patches will pass a successful flavor to nfs_clone_server() for new fsid nfs_server setup.

Signed-off-by: Andy Adamson <andros@citi.umich.edu>

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

linux-2.6.22-016-add_security_flavor_to_struct_nfs_fattr.dif:

From: Andy Adamson <andros@umich.edu>

Date: Fri, 18 May 2007 16:52:47 -0400

NFSv4: Add security flavor to struct nfs_fattr

Set fattr->flavor upon successful nfs4_proc_lookup retry in WRONGSEC error processing. This will ignored in all nfs4_proc_lookup returns except in nfs_follow_mount where the fattr->flavor is passed through to nfs_clone_server via the nfs_mount_data->fattr field.

Signed-off-by: Andy Adamson <andros@citi.umich.edu>

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

linux-2.6.22-NFS_ALL.dif:

All of the above

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.22-001-odi..>2007-05-30 20:19 2.4K 
[TXT]linux-2.6.22-002-odi..>2007-05-30 20:19 1.3K 
[TXT]linux-2.6.22-003-odi..>2007-05-30 20:19 1.5K 
[TXT]linux-2.6.22-004-fix..>2007-05-24 15:19 2.1K 
[TXT]linux-2.6.22-005-rea..>2007-05-24 15:19 2.2K 
[TXT]linux-2.6.22-006-mou..>2007-05-24 15:19 6.6K 
[TXT]linux-2.6.22-007-mou..>2007-05-24 15:19 2.7K 
[TXT]linux-2.6.22-008-gss..>2007-05-24 15:19 2.3K 
[TXT]linux-2.6.22-009-nfs..>2007-05-24 15:19 6.5K 
[TXT]linux-2.6.22-010-ret..>2007-05-24 15:19 1.7K 
[TXT]linux-2.6.22-011-obt..>2007-05-24 15:19 1.5K 
[TXT]linux-2.6.22-012-try..>2007-05-24 15:19 2.3K 
[TXT]linux-2.6.22-013-nfs..>2007-05-24 15:19 1.5K 
[TXT]linux-2.6.22-014-col..>2007-05-24 15:19 2.8K 
[TXT]linux-2.6.22-015-han..>2007-05-24 15:19 4.4K 
[TXT]linux-2.6.22-016-add..>2007-05-24 15:19 2.7K 
[TXT]linux-2.6.22-NFS_ALL..>2007-05-30 23:08 32K 
[   ]series 2007-05-30 23:07 896  

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