NFS client patches for Linux 2.6.13-rc1

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

linux-2.6.13-01-rpc_pipefs.dif:

[PATCH, RFC] rework rpc_pipefs Author: Christoph Hellwig <hch@lst.de>

Currently rpc_mkdir/rpc_rmdir and rpc_mkpipe/mk_unlink have an API that's a little unfortunate. They take a path relative to the rpc_pipefs root and thus need to perform a full lookup. If you look at debugfs or usbfs they always store the dentry for directories they created and thus can pass in a dentry + single pathname component pair into their equivalents of the above functions.

And in fact rpc_pipefs actually stores a dentry for all but one component so this change not only simplifies the core rpc_pipe code but also the callers.

Signed-off-by: Christoph Hellwig <hch@lst.de>

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

linux-2.6.13-02-iosem.dif:

NFS: Add support for iosems.

These act rather like semaphores, but also have support for asynchronous I/O, using the wait_queue_t callback features.

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

linux-2.6.13-03-nfs4_state_locks.dif:

NFS: Replace up/down(state_owner->so_sema)

Start the migration to non-semaphore based locks

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

linux-2.6.13-04-async_close.dif:

NFS: Fix a deadlock in rpciod.

rpciod may sometimes have to call nfs4_proc_close() on behalf of the user if doing asynchronous i/o (for instance readahead). When this happens, it first attempts to grab the open_owner so_iosem. If two such events happen, they may deadlock.

Resolve this problem by using the ability of iosems to start a work_queue job when the lock has been granted.

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

linux-2.6.13-05-async_locku.dif:

NFSv4: Make NFS clean up byte range locks asynchronously

Currently we fail to do so if the process was signalled.

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

linux-2.6.13-06-fix_iput.dif:

NFSv4: Safe return of delegations.

Make sure we return delegations in a safe (and asynchronous) manner inside nfs4_clear_inode().

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

linux-2.6.13-07-fix_reclaim_seqid.dif:

NFSv4: When reclaiming state, ensure that we zero the sequence ids.

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

linux-2.6.13-08-open_file_intents.dif:

VFS: Allow the filesystem to return a full file pointer on open intent

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

linux-2.6.13-09-nfs4_open_file_intents.dif:

NFSv4: Eliminate nfsv4 open race...

Make NFSv4 return the fully initialized file pointer with the stateid that it created in the lookup w/intent.

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

linux-2.6.13-10-nfs4_open_check_filetype.dif:

[NFS]: Check that the server returns a valid regular file to our OPEN request

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

linux-2.6.13-11-add_proc_mountstats.dif:

VFS: New /proc file /proc/self/mountstats

Create a new file under /proc/self, called mountstats, where mounted file systems can export information (configuration options, performance counters, and so on). Use a mechanism similar to /proc/mounts and s_ops->show_options.

This mechanism does not violate namespace security, and is safe to use while other processes are unmounting file systems.

Thanks to Mike Waychison for his review and comments.

Test-plan: Test concurrent mount/unmount operations while cat'ing /proc/self/mountstats.

Version: Thu, 31 Mar 2005 22:54:31 -0500

Signed-off-by: Chuck Lever <cel@netapp.com>

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

linux-2.6.13-12-add_nfs_perfstats.dif:

NFS: add I/O performance counters

Add a per-superblock performance counter facility to the NFS client. This facility mimics the counters available for block devices and for networking. Expose these new counters via the new /proc/self/mountstats interface.

Clean-up: fix a possible NULL dereference in nfs_lock, and simplify nfs_file_open.

Thanks to Andrew Morton and Trond Myklebust for their review and comments.

Test-plan: fsx and iozone on UP and SMP systems, with and without pre-emption. Watch for memory overwrite bugs, and performance loss (significantly more CPU required per op).

Version: Mon, 18 Apr 2005 19:35:04 -0400

Signed-off-by: Chuck Lever <cel@netapp.com>

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

linux-2.6.13-13-cleanup_mountinfo.dif:

NFS: clean up mountstats

Clean-up suggested by Trond Myklebust. Place code common to show_options and show_stats in a separate helper function.

Note we also add support for displaying "timeo=" and "retrans=" to both /proc/mounts and /proc/self/mountstats in this patch and the preceding one.

Test-plan: cat /proc/mounts and /proc/self/mountstats.

Version: Mon, 18 Apr 2005 19:35:17 -0400

Signed-off-by: Chuck Lever <cel@netapp.com>

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

linux-2.6.13-14-authgss_principal.dif:

RPC: Save the name of the principal in the gss_cred

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

linux-2.6.13-15-authgss_keyrings.dif:

RPC: Support the KEYRING model for AUTH_GSS credentials

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

linux-2.6.13-16-fsid.dif:

NFS: Store the file system "fsid" value in the NFS super block.

This should enable us to detect if we are crossing a mountpoint in the case where the server is exporting "nohide" mounts.

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

linux-2.6.13-17-nfs_clone_fs.dif:

VFS: Add GPL_EXPORTED function vfs_kern_mount()

do_kern_mount() does not allow the kernel to use private mount interfaces without exposing the same interfaces to userland. The problem is that the filesystem is referenced by name, thus meaning that it and its mount interface must be registered in the global filesystem list.

vfs_kern_mount() passes the struct file_system_type as an explicit parameter in order to overcome this limitation.

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

linux-2.6.13-18-nfs_clone_fs2.dif:

NFS: Ensure the client submounts, when it crosses a server mountpoint.

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

linux-2.6.13-19-expire_automounts.dif:

NFS: Add timeout to submounts

Make automounted partitions expire using the mark_mounts_for_expiry() function. The timeout is controlled via a sysctl.

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

linux-2.6.13-20-recover_filehandles.dif:

NFS: Attempt to recover when migrating to a replicated filesystem.

If the replica does not preserve filehandles and/or inode numbers, then we can try to walk the path in order to recover. This is definitely a case of walking on eggshells, though.

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

linux-2.6.13-21-switch_xprt.dif:

RPC: Support for failover to a new transport struct

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

linux-2.6.13-22-enter_page.dif:

RPC: Allow struc xdr_stream to read the page section of an xdr_buf

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

linux-2.6.13-23-fs_locations.dif:

NFSv4: Implement the fs_locations function call

NFSv4 allows for the fact that filesystems may be replicated across several servers or that they may be migrated to a backup server in case of failure of the primary server. fs_locations is an NFSv4 operation for retrieving information about the location of migrated and/or replicated filesystems.

Based on an initial implementation by Jiaying Zhang <jiayingz@citi.umich.edu>

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

linux-2.6.13-24-vfs_fix_permission_intent.dif:

VFS: Make link_path_walk set LOOKUP_CONTINUE before calling permission().

This will allow nfs_permission() to perform additional optimizations when walking the path, by folding the ACCESS(MAY_EXEC) call on the directory into the lookup revalidation.

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

linux-2.6.13-25-fs_locations_components.dif:

NFSv4: convert fs-locations-components to conform to RFC3530

Use component4-style formats for decoding list of servers and pathnames in fs_locations.

Signed-off-by: Manoj Naik <manoj@almaden.ibm.com>

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

linux-2.6.13-NFS_ALL.dif:

All of the above

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.13-01-rpc_..>2005-06-29 20:11 9.2K 
[TXT]linux-2.6.13-02-iose..>2005-06-29 17:38 9.6K 
[TXT]linux-2.6.13-03-nfs4..>2005-06-29 20:36 6.7K 
[TXT]linux-2.6.13-04-asyn..>2005-06-29 17:38 3.1K 
[TXT]linux-2.6.13-05-asyn..>2005-06-29 17:38 9.2K 
[TXT]linux-2.6.13-06-fix_..>2005-06-29 17:38 5.5K 
[TXT]linux-2.6.13-07-fix_..>2005-06-29 17:38 1.2K 
[TXT]linux-2.6.13-08-open..>2005-06-29 17:38 4.9K 
[TXT]linux-2.6.13-09-nfs4..>2005-08-09 23:44 12K 
[TXT]linux-2.6.13-10-nfs4..>2005-06-29 17:38 1.5K 
[TXT]linux-2.6.13-11-add_..>2005-06-29 17:38 5.1K 
[TXT]linux-2.6.13-12-add_..>2005-06-29 17:38 23K 
[TXT]linux-2.6.13-13-clea..>2005-06-29 17:38 4.5K 
[TXT]linux-2.6.13-14-auth..>2005-06-29 17:38 1.9K 
[TXT]linux-2.6.13-15-auth..>2005-06-29 17:38 12K 
[TXT]linux-2.6.13-16-fsid..>2005-06-29 17:38 6.6K 
[TXT]linux-2.6.13-17-nfs_..>2005-06-29 17:38 2.7K 
[TXT]linux-2.6.13-18-nfs_..>2005-06-29 17:38 17K 
[TXT]linux-2.6.13-19-expi..>2005-06-29 17:38 5.2K 
[TXT]linux-2.6.13-20-reco..>2005-06-29 17:38 7.1K 
[TXT]linux-2.6.13-21-swit..>2005-06-29 17:38 10K 
[TXT]linux-2.6.13-22-ente..>2005-06-29 17:38 2.6K 
[TXT]linux-2.6.13-23-fs_l..>2005-06-29 17:38 9.0K 
[TXT]linux-2.6.13-24-vfs_..>2005-06-29 17:38 1.0K 
[TXT]linux-2.6.13-25-fs_l..>2005-06-29 17:38 7.2K 
[TXT]linux-2.6.13-NFS_ALL..>2005-06-29 20:35 140K 

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