NFS client patches for Linux 2.6.12

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

linux-2.6.12-00-0fix_nfsd.dif:

NFSD: Clear signals before exiting the nfsd() thread

Fixes the error "RPC: failed to contact portmap (errno -512)." when the server later tries to unregister from the portmapper.

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

linux-2.6.12-01-adjust_iovec.dif:

RPC: Ensure XDR iovec length is initialized correctly in call_header

Fix up call_header() so that it calls xdr_adjust_iovec(). Fix calculation of the scratch buffer length in xdr_init_encode().

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

linux-2.6.12-02-create_client_destroys_xprt.dif:

RPC: Make rpc_create_client() destroy the transport on failure.

This saves us a couple of lines of cleanup code for each call.

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

linux-2.6.12-03-client_probe.dif:

RPC: Make rpc_create_client() probe server for RPC program+version support

Ensure that we don't create an RPC client without checking that the server does indeed support the RPC program + version that we are trying to set up.

This enables us to immediately return an error to "mount" if it turns out that the server is only supporting NFSv2, when we requested NFSv3 or NFSv4.

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

linux-2.6.12-04-kill_bad_mount_options.dif:

NFS: Kill annoying mount version mismatch printks

Ensure that we fix up the missing fields in the nfs_mount_data with sane defaults for older versions of mount, and return errors in the cases where we cannot.

Convert a bunch of annoying warnings into dprintks()

Return -EPROTONOSUPPORT rather than EIO if mount() tries to set NFSv3 without it actually being compiled in.

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

linux-2.6.12-05-cleanup_headers.dif:

NFS: Header file cleanup...

- Move NFSv4 state definitions into a private header file.

- Clean up gunk in nfs_fs.h

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

linux-2.6.12-06-cleanup_inode.dif:

NFS: Remove unused NFS inode field readdir_timestamp.

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

linux-2.6.12-07-reduce_rpc_task.dif:

RPC: Shrink struct rpc_task by switching to wait_on_bit()

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

linux-2.6.12-08-reduce_open_context.dif:

NFS: cleanup: shrink struct nfs_open_context

Remove the wait queue, and replace the functions that depended on it with wait_on_bit().

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

linux-2.6.12-09-indirect_inode_ops.dif:

NFS: Allow NFS versions to support different sets of inode operations.

ACL support will require supporting additional inode operations in v4 (getxattr, setxattr, listxattr). This patch allows different protocol versions to support different inode operations by adding a file_inode_ops to the nfs_rpc_ops (to match the existing dir_inode_ops).

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

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

linux-2.6.12-10-clear_acls.dif:

NFS: Add hooks to allow common NFS attribute code to clear cached acls

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

linux-2.6.12-11-nfs4acl2.dif:

NFSv4: Add {get,set,list}xattr methods for nfs4

Add {get,set,list}xattr methods for nfs4. The new methods are no-ops, to be used by subsequent ACL patch.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

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

linux-2.6.12-12-nfs4acl3.dif:

NFSv4: fix fattr size calculations

Make nfs4 fattr size calculations more explicit, revising them downward a bit in the process.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

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

linux-2.6.12-13-nfs4acl4.dif:

NFSv4: Client-side xdr for reading NFSv4 acls

Client-side support for NFSv4 acls: xdr encoding and decoding routines for reading acls

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

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

linux-2.6.12-14-nfs4acl5.dif:

NFSv4: ACL support for the NFSv4 client: read

Client-side support for NFSv4 ACLs. Exports the raw xdr code via the system.nfs4_acl extended attribute. It is up to userspace to decode the acl (and to provide correctly xdr'd acls on setxattr), and to convert to/from POSIX ACLs if desired.

This patch provides only the read support.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

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

linux-2.6.12-15-nfs4acl6.dif:

NFSv4: Client-side xdr for writing NFSv4 acls

Client-side support for NFSv4 acls: xdr encoding and decoding routines for writing acls

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

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

linux-2.6.12-16-nfs4acl7.dif:

NFSv4: ACL support for the NFSv4 client: write

Client-side write support for NFSv4 ACLs.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

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

linux-2.6.12-17-nfs4acl8.dif:

NFSv4: client-side caching NFSv4 ACLs

Add nfs4_acl field to the nfs_inode, and use it to cache acls. Only cache acls of size up to a page. Also prepare for up to a page of acl data even when the user doesn't pass in a buffer, as when they want to get the acl length to decide what size buffer to allocate.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

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

linux-2.6.12-18-fix_krb5perr.dif:

RPC: Don't fall back from krb5p to krb5i

We shouldn't be silently falling back from krb5p to krb5i.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

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

linux-2.6.12-19-rpcauth_error.dif:

RPC: [PATCH] improve rpcauthauth_create error returns

Currently we return -ENOMEM for every single failure to create a new auth. This is actually accurate for auth_null and auth_unix, but for auth_gss it's a bit confusing.

Allow rpcauth_create (and the ->create methods) to return errors. With this patch, the user may sometimes see an EINVAL instead. Whee.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

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

linux-2.6.12-20-rpc_badprog_error.dif:

RPC: Return -EPFNOSUPPORT for RPC programs that are unavailable The issuer of an RPC call should be able to tell the difference between an I/O error and program unavailable / program version unavailable / procedure unavailable. Return -EPFNOSUPPORT if the server does not support the RPC program we requested (RPC_PROG_UNAVAIL). Return -EPROTONOSUPPORT if it doesn't support the RPC program version we requested, (RPC_PROG_MISMATCH) Return -EOPNOTSUPP if it doesn't support the specific RPC procedure we requested (RPC_PROC_UNAVAIL).

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>

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

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

linux-2.6.12-21-rpc_change_program.dif:

RPC: Allow multiple RPC client programs to share the same transport

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>

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

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

linux-2.6.12-22-lazy_rpc_xdrbuf_alloc.dif:

RPC: Lazy RPC receive buffer allocation Allow to allocate pages in the receive buffer lazily. Used for the GETACL RPC, which has a big maximum reply size, but a small average reply size.

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

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>

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

linux-2.6.12-23-read_write_xdr_buf.dif:

RPC: Encode and decode arbitrary XDR arrays Add xdr_encode_array2 and xdr_decode_array2 functions for encoding end decoding arrays with arbitrary entries, such as acl entries. The goal here is to do this without allocating a contiguous temporary buffer.

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>

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

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

linux-2.6.12-24-nfsd_add_eopnotsupp.dif:

NFSD: Add NFS3ERR_NOTSUPP to the nfsd error mapping table

Add the missing NFS3ERR_NOTSUPP error code (defined in NFSv3) to the system-to-protocol-error table in nfsd. The nfsacl extension uses this error code.

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>

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

Signed-off-by: Andrew Morton <akpm@osdl.org>

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

linux-2.6.12-25-rpcsvc_multiplexed_ports.dif:

RPC: Allow the sunrpc server to multiplex serveral programs on a single port

The NFS and NFSACL programs run on the same RPC transport. This patch adds support for this by converting svc_program into a chained list of programs (server-side).

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>

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

Signed-off-by: Andrew Morton <akpm@osdl.org>

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

linux-2.6.12-26-nfsacl_infrastructure_and_server.dif:

NFSD: Add server support for NFSv3 ACLs.

This adds functions for encoding and decoding POSIX ACLs for the NFSACL protocol extension, and the GETACL and SETACL RPCs. The implementation is compatible with NFSACL in Solaris.

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>

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

Signed-off-by: Andrew Morton <akpm@osdl.org>

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

linux-2.6.12-27-nfsacl_client.dif:

NFS: Add support for NFSv3 ACLs

This adds acl support fo nfs clients via the NFSACL protocol extension, by implementing the getxattr, listxattr, setxattr, and removexattr iops for the system.posix_acl_access and system.posix_acl_default attributes. This patch implements a dumb version that uses no caching (and thus adds some overhead). (Another patch in this patchset adds caching as well.)

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>

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

Signed-off-by: Andrew Morton <akpm@osdl.org>

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

linux-2.6.12-28-nfsacl_umask_client_workaround.dif:

NFS: Fix handling of the umask when an NFSv3 default acl is present.

NFSv3 has no concept of a umask on the server side: The client applies the umask locally, and sends the effective permissions to the server. This behavior is wrong when files are created in a directory that has a default ACL. In this case, the umask is supposed to be ignored, and only the default ACL determines the file's effective permissions.

Usually its the server's task to conditionally apply the umask. But since the server knows nothing about the umask, we have to do it on the client side. This patch tries to fetch the parent directory's default ACL before creating a new file, computes the appropriate create mode to send to the server, and finally sets the new file's access and default acl appropriately.

Many thanks to Buck Huppmann <buchk@pobox.com> for sending the initial version of this patch, as well as for arguing why we need this change.

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>

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

Signed-off-by: Andrew Morton <akpm@osdl.org>

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

linux-2.6.12-29-cache_client_nfsacls.dif:

NFS: Cache the NFSv3 acls.

Attach acls to inodes in the icache to avoid unnecessary GETACL RPC round-trips. As long as the client doesn't retrieve any acls itself, only the default acls of exiting directories and the default and access acls of new directories will end up in the cache, which preserves some memory compared to always caching the access and default acl of all files.

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>

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

Signed-off-by: Andrew Morton <akpm@osdl.org>

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

linux-2.6.12-30-fix_nfsacl_client.dif:

NFS: Fix up v3 ACL caching code

Initialize the inode cache values correctly. Clean up __nfs3_forget_cached_acls()

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

linux-2.6.12-31-v4readdir_simplify.dif:

NFSv4: fs/nfs/nfs4proc.c: small simplification

The Coverity checker noticed that such a simplification was possible.

Signed-off-by: Adrian Bunk <bunk@stusta.de>

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

linux-2.6.12-32-empty_array_fix.dif:

NFSv4: empty array fix

Older gcc's don't like this.

fs/nfs/nfs4proc.c:2194: field `data' has incomplete type

Signed-off-by: Andrew Morton <akpm@osdl.org>

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

linux-2.6.12-33-fix_compile_warning.dif:

NFSv4: Fix build warning

From: Reuben Farrelly <reuben-lkml@reub.net>

With gcc-4.0:

fs/nfs/nfs4proc.c:2976: error: static declaration of 'nfs4_file_inode_operations' follows non-static declaration fs/nfs/nfs4_fs.h:179: error: previous declaration of 'nfs4_file_inode_operations' was here

Signed-off-by: Andrew Morton <akpm@osdl.org>

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

linux-2.6.12-34-nfs_callback_oops.dif:

NFSv4: Fix an Oops in the callback code.

The changeset "trond.myklebust@fys.uio.no|ChangeSet|20050322152404|16979" (RPC: Ensure XDR iovec length is initialized correctly in call_header) causes the NFSv4 callback code to BUG() due to an incorrectly initialized scratch buffer.

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

linux-2.6.12-35-dirent_fix.dif:

NFS: Hide NFS server-generated readdir cookies from userland

NFSv3 currently returns the unsigned 64-bit cookie directly to userspace. The following patch causes the kernel to generate loff_t offsets for the benefit of userland. The current server-generated READDIR cookie is cached in the nfs_open_context instead of in filp->f_pos, so we still end up work correctly under directory insertions/deletion.

Signed-off-by: Olivier Galibert <galibert@pobox.com>

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

linux-2.6.12-36-dir_add_lseek.dif:

NFS: Clean up readdir changes.

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

linux-2.6.12-37-file_add_lseek.dif:

NFS: Ensure that we revalidate the cached file length for llseek(SEEK_END)

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

linux-2.6.12-38-fix_writes.dif:

NFS: Fix the file size revalidation

Instead of looking at whether or not the file is open for writes before we accept to update the length using the server value, we should rather be looking at whether or not we are currently caching any writes.

Failure to do so means in particular that we're not updating the file length correctly after obtaining a POSIX or BSD lock.

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

linux-2.6.12-39-optimize_writes.dif:

NFS: Cleanup of caching code, and slight optimization of writes.

Unless we're doing O_APPEND writes, we really don't care about revalidating the file length. Just make sure that we catch any page cache invalidations.

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

linux-2.6.12-40-optimize_attrcache.dif:

NFS: Ensure that fstat() always returns the correct mtime

Even if the file is open for writes.

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

linux-2.6.12-41-wb_small.dif:

NFS: Write optimization for short files and small O_SYNC writes.

Use stable writes if we can see that we are only going to put a single write on the wire.

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

linux-2.6.12-42-nfspage_tag_busy.dif:

NFS: Make searching and waiting on busy writeback requests more efficient.

Basically copies the VFS's method for tracking writebacks and applies it to the struct nfs_page.

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

linux-2.6.12-43-nfspage_tag_dirty.dif:

NFS: Replace nfs_page insertion sort with a radix sort

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

linux-2.6.12-44-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.12-45-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.12-46-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.12-47-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.12-48-fix_setattr.dif:

NFSv4: Fix up races in nfs4_proc_setattr()

If we do not hold a valid stateid that is open for writes, there is little point in doing an extra open of the file, as the RFC does not appear to mandate this...

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

linux-2.6.12-49-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.12-50-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.12-51-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.12-52-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.12-53-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.12-54-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.12-55-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.12-56-authgss_keyrings.dif:

RPC: Support the KEYRING model for AUTH_GSS credentials

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

linux-2.6.12-57-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.12-58-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.12-59-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.12-60-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.12-61-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.12-62-switch_xprt.dif:

RPC: Support for failover to a new transport struct

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

linux-2.6.12-63-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.12-64-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.12-65-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.12-NFS_ALL.dif:

All of the above

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.12-00-0fix..>2005-03-21 00:16 695  
[TXT]linux-2.6.12-01-adju..>2005-03-21 20:47 2.4K 
[TXT]linux-2.6.12-02-crea..>2005-03-21 23:32 4.8K 
[TXT]linux-2.6.12-03-clie..>2005-03-21 23:24 6.0K 
[TXT]linux-2.6.12-04-kill..>2005-03-21 23:24 10K 
[TXT]linux-2.6.12-05-clea..>2005-03-18 03:26 25K 
[TXT]linux-2.6.12-06-clea..>2005-03-18 03:26 1.4K 
[TXT]linux-2.6.12-07-redu..>2005-03-18 03:26 3.0K 
[TXT]linux-2.6.12-08-redu..>2005-03-21 23:25 2.7K 
[TXT]linux-2.6.12-09-indi..>2005-03-21 23:25 3.3K 
[TXT]linux-2.6.12-10-clea..>2005-03-21 23:25 4.9K 
[TXT]linux-2.6.12-11-nfs4..>2005-03-18 03:26 3.4K 
[TXT]linux-2.6.12-12-nfs4..>2005-03-18 03:26 2.8K 
[TXT]linux-2.6.12-13-nfs4..>2005-03-18 03:26 4.9K 
[TXT]linux-2.6.12-14-nfs4..>2005-03-18 03:26 3.3K 
[TXT]linux-2.6.12-15-nfs4..>2005-03-18 03:26 4.2K 
[TXT]linux-2.6.12-16-nfs4..>2005-06-11 01:17 1.8K 
[TXT]linux-2.6.12-17-nfs4..>2005-03-21 23:26 6.3K 
[TXT]linux-2.6.12-18-fix_..>2005-03-18 03:26 1.0K 
[TXT]linux-2.6.12-19-rpca..>2005-06-10 21:32 6.0K 
[TXT]linux-2.6.12-20-rpc_..>2005-03-21 23:26 3.1K 
[TXT]linux-2.6.12-21-rpc_..>2005-03-21 23:26 3.9K 
[TXT]linux-2.6.12-22-lazy..>2005-03-18 03:26 4.9K 
[TXT]linux-2.6.12-23-read..>2005-03-21 23:35 9.4K 
[TXT]linux-2.6.12-24-nfsd..>2005-03-18 03:26 866  
[TXT]linux-2.6.12-25-rpcs..>2005-03-21 23:26 3.4K 
[TXT]linux-2.6.12-26-nfsa..>2005-04-05 12:26 37K 
[TXT]linux-2.6.12-27-nfsa..>2005-06-10 21:33 26K 
[TXT]linux-2.6.12-28-nfsa..>2005-03-21 23:27 6.1K 
[TXT]linux-2.6.12-29-cach..>2005-03-21 00:52 5.7K 
[TXT]linux-2.6.12-30-fix_..>2005-03-23 04:27 2.1K 
[TXT]linux-2.6.12-31-v4re..>2005-03-24 00:15 775  
[TXT]linux-2.6.12-32-empt..>2005-03-24 18:25 733  
[TXT]linux-2.6.12-33-fix_..>2005-03-25 14:45 1.0K 
[TXT]linux-2.6.12-34-nfs_..>2005-03-24 18:31 1.0K 
[TXT]linux-2.6.12-35-dire..>2005-03-23 01:41 9.9K 
[TXT]linux-2.6.12-36-dir_..>2005-03-24 00:31 9.4K 
[TXT]linux-2.6.12-37-file..>2005-06-10 18:02 2.7K 
[TXT]linux-2.6.12-38-fix_..>2005-04-05 15:28 6.7K 
[TXT]linux-2.6.12-39-opti..>2005-04-25 04:12 4.2K 
[TXT]linux-2.6.12-40-opti..>2005-04-25 04:14 5.7K 
[TXT]linux-2.6.12-41-wb_s..>2005-04-19 21:00 1.5K 
[TXT]linux-2.6.12-42-nfsp..>2005-03-30 21:26 6.0K 
[TXT]linux-2.6.12-43-nfsp..>2005-03-31 12:40 10K 
[TXT]linux-2.6.12-44-iose..>2005-03-31 13:13 9.6K 
[TXT]linux-2.6.12-45-nfs4..>2005-03-31 02:41 6.7K 
[TXT]linux-2.6.12-46-asyn..>2005-03-31 02:42 3.1K 
[TXT]linux-2.6.12-47-asyn..>2005-03-31 02:42 8.1K 
[TXT]linux-2.6.12-48-fix_..>2005-03-29 00:43 2.7K 
[TXT]linux-2.6.12-49-fix_..>2005-04-05 16:33 5.5K 
[TXT]linux-2.6.12-50-open..>2005-03-29 04:55 4.9K 
[TXT]linux-2.6.12-51-nfs4..>2005-03-29 20:40 11K 
[TXT]linux-2.6.12-52-add_..>2005-04-05 12:27 5.1K 
[TXT]linux-2.6.12-53-add_..>2005-05-18 16:34 23K 
[TXT]linux-2.6.12-54-clea..>2005-04-21 17:33 4.6K 
[TXT]linux-2.6.12-55-auth..>2005-03-18 03:26 1.9K 
[TXT]linux-2.6.12-56-auth..>2005-03-29 20:40 12K 
[TXT]linux-2.6.12-57-fsid..>2005-04-05 16:36 6.6K 
[TXT]linux-2.6.12-58-nfs_..>2005-03-18 03:26 2.7K 
[TXT]linux-2.6.12-59-nfs_..>2005-06-10 21:33 17K 
[TXT]linux-2.6.12-60-expi..>2005-04-05 16:37 5.2K 
[TXT]linux-2.6.12-61-reco..>2005-04-05 16:37 7.1K 
[TXT]linux-2.6.12-62-swit..>2005-03-21 23:42 9.3K 
[TXT]linux-2.6.12-63-ente..>2005-03-21 17:24 2.6K 
[TXT]linux-2.6.12-64-fs_l..>2005-03-29 20:40 9.0K 
[TXT]linux-2.6.12-65-vfs_..>2005-03-29 04:59 1.0K 
[TXT]linux-2.6.12-NFS_ALL..>2005-04-25 04:11 317K 

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