NFS client patches for Linux 2.6.15

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

linux-2.6.15-01-writeback_control-flag.dif:

Author: Andrew Morton <akpm@osdl.org> Date: Wed, 16 Nov 2005 15:07:01 -0800 identify multipage ->writepages() calls

NFS needs to be able to distinguish between single-page ->writepage() calls and multipage ->writepages() calls.

For the single-page writepage calls NFS can kick off the I/O within the context of ->writepage().

For multipage ->writepages calls, nfs_writepage() will leave the I/O pending and nfs_writepages() will kick off the I/O when it all has been queued up within NFS.

Cc: Trond Myklebust <trond.myklebust@fys.uio.no>

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

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

linux-2.6.15-02-nfs_writeback_control.dif:

NFS: Work correctly with single-page ->writepage() calls

Ensure that we always initiate flushing of data before we exit a single-page ->writepage() call.

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

linux-2.6.15-03-rpc_task_cleanup_exit.dif:

SUNRPC: Yet more RPC cleanups

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

linux-2.6.15-04-rpc_task_cleanup.dif:

Author: Trond Myklebust <Trond.Myklebust@netapp.com> RPC: Clean up RPC task structure

Shrink the RPC task structure. Instead of storing separate pointers for task->tk_exit and task->tk_release, put them in a structure.

Also pass the user data pointer as a parameter instead of passing it via task->tk_calldata. This enables us to nest callbacks.

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

linux-2.6.15-05-rpc_task_cleanup_prepare.dif:

SUNRPC: Further cleanups

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

linux-2.6.15-06-rpc_async_call.dif:

Author: Trond Myklebust <Trond.Myklebust@netapp.com> NFSv4: stateful NFSv4 RPC call interface

The NFSv4 model requires us to complete all RPC calls that might establish state on the server whether or not the user wants to interrupt it. We may also need to schedule new work (including new RPC calls) in order to cancel the new state.

The asynchronous RPC model will allow us to ensure that RPC calls always complete, but in order to allow for "synchronous" RPC, we want to add the ability to wait for completion. The waits are, of course, interruptible.

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

linux-2.6.15-07-cleanup_locku.dif:

Author: Trond Myklebust <Trond.Myklebust@netapp.com> NFSv4: Make locku use the new RPC "wait on completion" interface.

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

linux-2.6.15-08-nfs_open_interruptible.dif:

NFSv4: Allocate OPEN call RPC arguments using kmalloc()

Cleanup in preparation for making OPEN calls interruptible by the user.

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

linux-2.6.15-09-cleanup_exports.dif:

Author: Trond Myklebust <Trond.Myklebust@netapp.com> SUNRPC: Get rid of some unused exports

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

linux-2.6.15-10-rpc_execute.dif:

SUNRPC: rpc_execute should not return task->tk_status;

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

linux-2.6.15-11-nfs4_async_open.dif:

NFSv4: Convert open() into an asynchronous RPC call

OPEN is a stateful operation, so we must ensure that it always completes. In order to allow users to interrupt the operation, we need to make the RPC call asynchronous, and then wait on completion (or cancel).

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

linux-2.6.15-12-nfs4_async_open_confirm.dif:

Author: Trond Myklebust <Trond.Myklebust@netapp.com> NFSv4: Make open_confirm() asynchronous too

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

linux-2.6.15-13-track_open_close.dif:

NFSv4: Make nfs4_state track O_RDWR, O_RDONLY and O_WRONLY separately

A closer reading of RFC3530 reveals that OPEN_DOWNGRADE must always specify a access modes that have been the argument of a previous OPEN operation. IOW: doing OPEN(O_RDWR) and then OPEN_DOWNGRADE(O_WRONLY) is forbidden unless the user called OPEN(O_WRONLY)

In order to fix that, we really need to track the three possible open states separately.

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

linux-2.6.15-14-fix_open_recovery.dif:

NFSv4: Make open recovery track O_RDWR, O_RDONLY and O_WRONLY correctly

When recovering from a delegation recall or a network partition, we need to replay open(O_RDWR), open(O_RDONLY) and open(O_WRONLY) separately.

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

linux-2.6.15-15-cleanup_locku_xdr.dif:

NFSv4: locking XDR cleanup

Get rid of some unnecessary intermediate structures

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

linux-2.6.15-16-nfs4_lock_interruptible.dif:

NFSv4: Convert LOCK rpc call into an asynchronous RPC call

In order to allow users to interrupt/cancel it.

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

linux-2.6.15-17-delegreturn_interruptible.dif:

NFSv4: Make DELEGRETURN an interruptible operation.

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

linux-2.6.15-18-rpc_make_killable.dif:

SUNRPC: Ensure that SIGKILL will always terminate a synchronous RPC call.

...and make sure that the "intr" flag also enables SIGHUP and SIGTERM to interrupt RPC calls too (as per the Solaris implementation).

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

linux-2.6.15-19-renew_lease.dif:

NFSv4: OPEN/LOCK/LOCKU/CLOSE will automatically renew the NFSv4 lease

Cut down on the number of unnecessary RENEW requests on the wire.

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

linux-2.6.15-20-state_recover_cleanup.dif:

NFSv4: State recovery cleanup

Use wait_on_bit() when waiting for state recovery to complete.

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

linux-2.6.15-21-use_kthread.dif:

NFS: Convert instances of kernel_thread() to kthread()

Convert private implementations in NFSv4 state recovery and delegation code to use kthreads.

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

linux-2.6.15-22-renew_only_when_stateful.dif:

NFSv4: Send RENEW requests to the server only when we're holding state

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

linux-2.6.15-23-renew_no_machine_cred.dif:

NFSv4: Remove requirement for machine creds for the "renew" operation

In RFC3530, the RENEW operation is allowed to use either

the same principal, RPC security flavour and (if RPCSEC_GSS), the same mechanism and service that was used for SETCLIENTID_CONFIRM

OR

Any principal, RPC security flavour and service combination that currently has an OPEN file on the server.

Choose the latter since that doesn't require us to keep credentials for the same principal for the entire duration of the mount.

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

linux-2.6.15-24-setclient_no_machine_cred.dif:

Author: Trond Myklebust <Trond.Myklebust@netapp.com> NFSv4: Remove requirement for machine creds for the "setclientid" operation

Use a cred from the nfs4_client->cl_state_owners list.

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

linux-2.6.15-25-fix_odirect_sanity_checks.dif:

Author: Chuck Lever <cel@netapp.com> Date: Wed, 30 Nov 2005 18:08:17 -0500 NFS: use generic_write_checks() to sanity check direct writes

Replace ad hoc write parameter sanity checking in nfs_file_direct_write() with a call to generic_write_checks(). This should make the proper checks modulo the O_LARGEFILE flag, and should catch NFSv2-specific limitations by virtue of i_sb->s_maxbytes.

Test plan: Posix compliance testing with both NFSv2 and NFSv3.

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

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

linux-2.6.15-26-fix_init_nfs.dif:

Author: Chuck Lever <cel@netapp.com> Date: Wed, 30 Nov 2005 18:08:19 -0500 NFS: Fix error recovery code in fs/nfs/inode.c:__init_nfs()

Red Hat found a problem in the error recovery logic in __init_nfs.

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

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

linux-2.6.15-27-simplify_nfs_page_bitops.dif:

Author: Chuck Lever <cel@netapp.com> Date: Wed, 30 Nov 2005 18:08:59 -0500 NFS: simplify inlined bit ops in nfs_page.h

Minor cleanup: inlined bit ops in nfs_page.h can be simpler.

Test plan: Write-intensive workload against a server that requires COMMITs.

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

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

linux-2.6.15-28-statfs_error_to_dprintk.dif:

Author: Chuck Lever <cel@netapp.com> Date: Wed, 30 Nov 2005 18:08:57 -0500 NFS: get rid of useless kernel log message

nfs_statfs() generates a log message when GETATTR returns an error. This is usually a useless message. Make it a dprintk.

Test plan: None

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

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

linux-2.6.15-29-improve_update_inode_error.dif:

Author: Chuck Lever <cel@netapp.com> Date: Wed, 30 Nov 2005 18:08:55 -0500 NFS: make "inode number mismatch" message more useful

To help NFS users and server developers, make the "inode number mismatch" message display more useful information.

Test-plan: None.

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

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

linux-2.6.15-30-large_wsize_support.dif:

Author: Chuck Lever <cel@netapp.com> Date: Wed, 30 Nov 2005 18:09:02 -0500 NFS: support large reads and writes on the wire

Most NFS server implementations allow up to 64KB reads and writes on the wire. The Solaris NFS server allows up to a megabyte, for instance.

Now the Linux NFS client supports transfer sizes up to 1MB, too. This will help reduce protocol and context switch overhead on read/write intensive NFS workloads, and support larger atomic read and write operations on servers that support them.

Test-plan: Connectathon and iozone on mount point with wsize=rsize>32768 over TCP. Tests with NFS over UDP to verify the maximum RPC payload size cap.

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

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

linux-2.6.15-31-return_delegation_on_rename.dif:

NFSv4: Ensure that we return the delegation on the target of a rename too.

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

linux-2.6.15-32-write_updates_mtime.dif:

NFS: Make stat() return updated mtimes after a write()

The SuS states that a call to write() will cause mtime to be updated on the file. In order to satisfy that requirement, we need to flush out any cached writes in nfs_getattr(). Speed things up slightly by not committing the writes.

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

linux-2.6.15-33-make_directio_compound_aware.dif:

NFS: Make directIO aware of compound pages...

...and avoid calling set_page_dirty on them

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

linux-2.6.15-34-fix_rpc_pipefs_race.dif:

Author: Trond Myklebust <Trond.Myklebust@netapp.com> SUNRPC: Fix a potential race in rpc_pipefs.

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

linux-2.6.15-35-change_attr_write_deleg.dif:

Author: Trond Myklebust <Trond.Myklebust@netapp.com> NFSv4: Ensure change attribute returned by GETATTR callback conforms to spec

According to RFC3530 we're supposed to cache the change attribute at the time the client receives a write delegation. If the inode is clean, a CB_GETATTR callback by the server to the client is supposed to return the cached change attribute. If, OTOH, the inode is dirty, the client should bump the cached change attribute by 1.

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

linux-2.6.15-36-delegreturn_fattr.dif:

Author: Trond Myklebust <Trond.Myklebust@netapp.com> NFSv4: Ensure DELEGRETURN returns attributes

Upon return of a write delegation, the server will almost always bump the change attribute. Ensure that we pick up that change so that we don't invalidate our data cache unnecessarily.

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

linux-2.6.15-37-wcc_cleanup.dif:

Author: Trond Myklebust <Trond.Myklebust@netapp.com> NFS: Clean up weak cache consistency code

...and ensure that nfs_update_inode() respects wcc

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

linux-2.6.15-38-callback_set_port.dif:

Author: Trond Myklebust <Trond.Myklebust@netapp.com> NFSv4: Allow user to set the port used by the NFSv4 callback channel

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

linux-2.6.15-39-kill_xdr_decode_string.dif:

Author: Adrian Bunk <bunk@stusta.de> SUNRPC: net/sunrpc/xdr.c: remove xdr_decode_string()

This patch removes ths unused function xdr_decode_string().

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

Acked-by: Neil Brown <neilb@suse.de>

Acked-by: Charles Lever <Charles.Lever@netapp.com>

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

linux-2.6.15-40-fix_borken_mode_bits.dif:

Author: Trond Myklebust <Trond.Myklebust@netapp.com> NFS: Send valid mode bits to the server

inode->i_mode contains a lot more than just the mode bits. Make sure that we mask away this extra stuff in SETATTR calls to the server.

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

linux-2.6.15-41-cleanup_nfs2_encode_sattr.dif:

Author: Trond Myklebust <Trond.Myklebust@netapp.com> NFS: get rid of some needless code obfuscation in xdr_encode_sattr().

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

linux-2.6.15-42-fix_server_close.dif:

Author: Trond Myklebust <Trond.Myklebust@netapp.com> SUNRPC: Ensure client closes the socket when server initiates a close

If the server decides to close the RPC socket, we currently don't actually respond until either another RPC call is scheduled, or until xprt_autoclose() gets called by the socket expiry timer (which may be up to 5 minutes later).

This patch ensures that xprt_autoclose() is called much sooner if the server closes the socket.

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

linux-2.6.15-43-flush_on_xprt_shutdown.dif:

Author: Trond Myklebust <Trond.Myklebust@netapp.com> SUNRPC: Clean up xprt_destroy()

We ought never to be calling xprt_destroy() if there are still active rpc_tasks. Optimise away the broken code that attempts to "fix" that case.

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

linux-2.6.15-44-ensure_idmap_expires.dif:

Author: Trond Myklebust <Trond.Myklebust@netapp.com> NFSv4: Allow entries in the idmap cache to expire

If someone changes the uid/gid mapping in userland, then we do eventually want those changes to be propagated to the kernel. Currently the kernel assumes that it may cache entries forever.

Add an expiration time + garbage collector for idmap entries.

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

linux-2.6.15-45-fix_borken_sector_t.dif:

VFS: Convert abuses of sector_t

The type "sector_t" is heavily tied in to the block layer interface as an offset/handle to a block, and is subject to a supposedly block-specific configuration option: CONFIG_LBD. Despite this, it is used in struct kstatfs to save a couple of bytes on the stack whenever we call the filesystems' ->statfs().

One consequence is that networked filesystems may break if CONFIG_LBD is not set, since it is quite common to have multi-TB remote filesystems.

The following patch just converts struct kstatfs to use the standard type u64.

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

linux-2.6.15-46-fix_oops_in_expire_delegations.dif:

Author: Trond Myklebust <Trond.Myklebust@netapp.com> NFSv4: Fix an Oops in nfs_do_expire_all_delegations

If the loop errors, we need to exit.

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

linux-2.6.15-47-spkm_make_checksum.dif:

Author: J. Bruce Fields <bfields@fieldses.org> SUNRPC: Update the spkm3 code to use the make_checksum interface

Also update the tokenlen calculations to accomodate g_token_size().

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

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

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

linux-2.6.15-48-spkm_report_unsupported_crypto.dif:

Author: J. Bruce Fields <bfields@fieldses.org> SUNRPC: Make spkm3 report unsupported encryption types

Print messages when an unsupported encrytion algorthm is requested or there is an error locating a supported algorthm.

Signed-off-by: Kevin Coffman <kwc@citi.umich.edu>

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

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

linux-2.6.15-49-krb5_report_unsupported_crypto.dif:

Author: J. Bruce Fields <bfields@fieldses.org> SUNRPC: Make krb5 report unsupported encryption types

Print messages when an unsupported encrytion algorthm is requested or there is an error locating a supported algorthm.

Signed-off-by: Kevin Coffman <kwc@citi.umich.edu>

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

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

linux-2.6.15-50-cleanup_nlmsvc_grant_reply.dif:

Author: J. Bruce Fields <bfields@fieldses.org> NLM: Clean up nlmsvc_grant_reply locking

Slightly simpler logic here makes it more trivial to verify that the up's and down's are balanced here. Break out an assignment from a conditional while we're at it.

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

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

linux-2.6.15-51-nlm_correct_cancel_lock.dif:

Author: J. Bruce Fields <bfields@fieldses.org> NLM: don't unlock on cancel requests

Currently when lockd gets an NLM_CANCEL request, it also does an unlock for the same range. This is incorrect.

The Open Group documentation says that "This procedure cancels an *outstanding* blocked lock request." (Emphasis mine.)

Also, consider a client that holds a lock on the first byte of a file, and requests a lock on the entire file. If the client cancels that request (perhaps because the requesting process is signalled), the server shouldn't apply perform an unlock on the entire file, since that will also remove the previous lock that the client was already granted.

Or consider a lock request that actually *downgraded* an exclusive lock to a shared lock.

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

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

linux-2.6.15-52-fix_nlmsvc_delete_block.dif:

Author: J. Bruce Fields <bfields@fieldses.org> NLM: clean up nlmsvc_delete_block

The fl_next check here is superfluous (and possibly a layering violation).

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

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

linux-2.6.15-53-fix_nlmsvc_delete_block2.dif:

Author: J. Bruce Fields <bfields@fieldses.org> NLM: Further cancel fixes

If the server receives an NLM cancel call and finds no waiting lock to cancel, then chances are the lock has already been applied, and the client just hadn't yet processed the NLM granted callback before it sent the cancel.

The Open Group text, for example, perimts a server to return either success (LCK_GRANTED) or failure (LCK_DENIED) in this case. But returning an error seems more helpful; the client may be able to use it to recognize that a race has occurred and to recover from the race.

So, modify the relevant functions to return an error in this case.

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

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

linux-2.6.15-54-fix_nlm4svc_decode_reboot.dif:

Author: J. Bruce Fields <bfields@fieldses.org> NLM: fix parsing of sm notify procedure

The procedure that decodes statd sm_notify call seems to be skipping a few arguments. How did this ever work?

>From folks at Polyserve.

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

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

linux-2.6.15-55-fix_nfs3_rpcsec_mount.dif:

Author: J. Bruce Fields <bfields@fieldses.org> NFSv3: try get_root user-supplied security_flavor

Thanks to Ed Keizer for bug and root cause. He says: "... we could only mount the top-level Solaris share. We could not mount deeper into the tree. Investigation showed that Solaris allows UNIX authenticated FSINFO only on the top level of the share. This is a problem because we share/export our home directories one level higher than we mount them. I.e. we share the partition and not the individual home directories. This prevented access to home directories."

We still may need to try auth_sys for the case where the client doesn't have appropriate credentials.

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

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

linux-2.6.15-56-rdma_buffer_alloc_switch.dif:

Author: Chuck Lever <cel@netapp.com> SUNRPC: switchable buffer allocation

Add RPC client transport switch support for replacing buffer management on a per-transport basis.

In the current IPv4 socket transport implementation, RPC buffers are allocated as needed for each RPC message that is sent. Some transport implementations may choose to use pre-allocated buffers for encoding, sending, receiving, and unmarshalling RPC messages, however. For transports capable of direct data placement, the buffers can be carved out of a pre-registered area of memory rather than from a slab cache.

Test-plan: Millions of fsx operations. Performance characterization with "sio" and "iozone". Use oprofile and other tools to look for significant regression in CPU utilization.

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

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

linux-2.6.15-57-cleanup_port_rebind.dif:

Author: Chuck Lever <cel@netapp.com> SUNRPC: new interface to force an RPC rebind

We'd like to hide fields in rpc_xprt and rpc_clnt from upper layer protocols. Start by creating an API to force RPC rebind, replacing logic that simply sets cl_port to zero.

Test-plan: Destructive testing (unplugging the network temporarily). Connectathon with UDP and TCP. NFSv2/3 and NFSv4 mounting should be carefully checked. Probably need to rig a server where certain services aren't running, or that returns an error for some typical operation.

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

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

linux-2.6.15-58-transport_specific_portmap.dif:

Author: Chuck Lever <cel@netapp.com> SUNRPC: transport switch API for setting port number

At some point, transport endpoint addresses will no longer be IPv4. To hide the structure of the rpc_xprt's address field from ULPs and port mappers, add an API for setting the port number during an RPC bind operation.

Test-plan: Destructive testing (unplugging the network temporarily). Connectathon with UDP and TCP. NFSv2/3 and NFSv4 mounting should be carefully checked. Probably need to rig a server where certain services aren't running, or that returns an error for some typical operation.

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

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

linux-2.6.15-59-kill_cl_chatty.dif:

Author: Chuck Lever <cel@netapp.com> SUNRPC: get rid of cl_chatty

Clean up: Every ULP that uses the in-kernel RPC client, except the NLM client, sets cl_chatty. There's no reason why NLM shouldn't set it, so just get rid of cl_chatty and always be verbose.

Test-plan: Compile with CONFIG_NFS enabled.

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

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

linux-2.6.15-60-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.15-61-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.15-NFS_ALL.dif:

All of the above

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.15-01-writ..>2005-12-13 00:22 2.2K 
[TXT]linux-2.6.15-02-nfs_..>2005-11-30 17:23 1.4K 
[TXT]linux-2.6.15-03-rpc_..>2005-11-16 05:21 6.4K 
[TXT]linux-2.6.15-04-rpc_..>2005-12-28 06:45 42K 
[TXT]linux-2.6.15-05-rpc_..>2005-12-02 03:45 6.3K 
[TXT]linux-2.6.15-06-rpc_..>2005-12-28 06:45 8.4K 
[TXT]linux-2.6.15-07-clea..>2005-12-28 06:45 4.2K 
[TXT]linux-2.6.15-08-nfs_..>2005-12-02 03:45 10K 
[TXT]linux-2.6.15-09-clea..>2005-12-28 06:45 1.2K 
[TXT]linux-2.6.15-10-rpc_..>2005-11-17 02:49 1.4K 
[TXT]linux-2.6.15-11-nfs4..>2005-12-02 03:45 13K 
[TXT]linux-2.6.15-12-nfs4..>2005-12-28 06:45 6.4K 
[TXT]linux-2.6.15-13-trac..>2005-12-02 03:45 4.5K 
[TXT]linux-2.6.15-14-fix_..>2005-12-02 03:45 13K 
[TXT]linux-2.6.15-15-clea..>2005-12-02 03:45 20K 
[TXT]linux-2.6.15-16-nfs4..>2005-12-02 03:45 9.2K 
[TXT]linux-2.6.15-17-dele..>2005-12-02 03:45 2.6K 
[TXT]linux-2.6.15-18-rpc_..>2005-12-03 03:07 1.6K 
[TXT]linux-2.6.15-19-rene..>2005-12-02 03:45 6.6K 
[TXT]linux-2.6.15-20-stat..>2005-12-02 03:45 4.7K 
[TXT]linux-2.6.15-21-use_..>2005-12-02 21:24 3.5K 
[TXT]linux-2.6.15-22-rene..>2005-12-02 21:24 5.9K 
[TXT]linux-2.6.15-23-rene..>2005-12-02 21:24 7.0K 
[TXT]linux-2.6.15-24-setc..>2005-12-28 06:45 8.2K 
[TXT]linux-2.6.15-25-fix_..>2005-12-08 18:17 3.0K 
[TXT]linux-2.6.15-26-fix_..>2005-12-08 18:17 790  
[TXT]linux-2.6.15-27-simp..>2005-12-08 18:17 1.4K 
[TXT]linux-2.6.15-28-stat..>2005-12-08 18:17 931  
[TXT]linux-2.6.15-29-impr..>2005-12-08 18:17 1.5K 
[TXT]linux-2.6.15-30-larg..>2005-12-08 18:17 13K 
[TXT]linux-2.6.15-31-retu..>2005-12-08 21:05 595  
[TXT]linux-2.6.15-32-writ..>2005-12-09 14:52 2.4K 
[TXT]linux-2.6.15-33-make..>2005-12-09 22:22 711  
[TXT]linux-2.6.15-34-fix_..>2005-12-28 06:45 1.4K 
[TXT]linux-2.6.15-35-chan..>2005-12-14 04:33 2.0K 
[TXT]linux-2.6.15-36-dele..>2005-12-14 04:42 5.7K 
[TXT]linux-2.6.15-37-wcc_..>2005-12-15 04:40 3.7K 
[TXT]linux-2.6.15-38-call..>2005-12-15 04:58 6.5K 
[TXT]linux-2.6.15-39-kill..>2005-12-15 05:18 1.8K 
[TXT]linux-2.6.15-40-fix_..>2005-12-15 21:24 1.6K 
[TXT]linux-2.6.15-41-clea..>2005-12-15 21:24 1.8K 
[TXT]linux-2.6.15-42-fix_..>2005-12-16 08:08 4.2K 
[TXT]linux-2.6.15-43-flus..>2005-12-16 07:13 2.6K 
[TXT]linux-2.6.15-44-ensu..>2005-12-16 01:15 4.3K 
[TXT]linux-2.6.15-45-fix_..>2005-12-15 04:42 1.2K 
[TXT]linux-2.6.15-46-fix_..>2005-12-20 01:09 925  
[TXT]linux-2.6.15-47-spkm..>2005-12-27 21:17 4.2K 
[TXT]linux-2.6.15-48-spkm..>2005-12-27 21:17 1.4K 
[TXT]linux-2.6.15-49-krb5..>2005-12-27 21:17 1.4K 
[TXT]linux-2.6.15-50-clea..>2005-12-27 21:17 1.3K 
[TXT]linux-2.6.15-51-nlm_..>2005-12-27 21:18 2.1K 
[TXT]linux-2.6.15-52-fix_..>2005-12-27 21:18 806  
[TXT]linux-2.6.15-53-fix_..>2005-12-27 21:18 4.1K 
[TXT]linux-2.6.15-54-fix_..>2005-12-27 21:18 838  
[TXT]linux-2.6.15-55-fix_..>2005-12-27 21:18 2.4K 
[TXT]linux-2.6.15-56-rdma..>2005-12-27 22:44 9.5K 
[TXT]linux-2.6.15-57-clea..>2005-12-27 22:44 3.4K 
[TXT]linux-2.6.15-58-tran..>2005-12-27 22:44 4.0K 
[TXT]linux-2.6.15-59-kill..>2005-12-27 22:44 4.9K 
[TXT]linux-2.6.15-60-upda..>2006-01-02 18:28 3.6K 
[TXT]linux-2.6.15-61-cach..>2006-01-02 18:28 913  
[TXT]linux-2.6.15-NFS_ALL..>2006-01-03 10:05 213K 

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