NFS client patches for Linux 2.6.23

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

linux-2.6.23-001-add_nfs_page_mkwrite.dif:

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

Date: Sun, 22 Jul 2007 17:09:05 -0400

NFS: Add the helper nfs_vm_page_mkwrite

This is needed in order to set up a proper nfs_page request for mmapped files.

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

linux-2.6.23-002-clean_up_write.dif:

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

Date: Sun, 22 Jul 2007 17:09:05 -0400

NFS: Clean up write code...

The addition of nfs_page_mkwrite means that We should no longer need to create requests inside nfs_writepage()

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

linux-2.6.23-003-cleanup_nfs_writepages.dif:

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

Date: Sun, 22 Jul 2007 19:27:32 -0400

NFS: Clean up nfs_writepages()

Just call write_cache_pages directly instead of hacking the writeback control structure in order to find out if we were called from writepages() or directly from the VM.

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

linux-2.6.23-004-remove_wbc_fs_private.dif:

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

Date: Sun, 22 Jul 2007 19:27:46 -0400

VFS: Remove writeback_control->fs_private

The only user of this field was NFS.

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

linux-2.6.23-005-add_nfs_wb_nocommit.dif:

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

Date: Fri, 20 Jul 2007 13:13:28 -0400

NFS: Clean up NFS writeback flush code

The only user of nfs_sync_mapping_range() is nfs_getattr(), which uses it to flush out the entire inode without sending a commit. We therefore replace nfs_sync_mapping_range with a more appropriate helper.

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

linux-2.6.23-006-optimise_writeback.dif:

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

Date: Wed, 25 Jul 2007 14:09:54 -0400

NFS: Writeback optimisation

Schedule writes using WB_SYNC_NONE first, then come back for a second pass using WB_SYNC_ALL.

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

linux-2.6.23-007-osync_on_error.dif:

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

Date: Wed, 25 Jul 2007 14:09:54 -0400

NFS: Fall back to synchronous writes when a background write errors...

This helps prevent huge queues of background writes from building up whenever the server runs out of disk or quota space, or if someone changes the file access modes behind our backs.

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

linux-2.6.23-008-convert_rpc_pipefs_to_fsnotify.dif:

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

Date: Thu, 7 Jun 2007 22:44:34 -0400

SUNRPC: Convert rpc_pipefs to use the generic filesystem notification hooks

This will allow rpc.gssd to use inotify instead of dnotify in order to locate new rpc upcall pipes.

This also requires the exporting of __audit_inode_child(), which is used by fsnotify_create() and fsnotify_mkdir(). Ccing David Woodhouse.

Cc: David Woodhouse <dwmw2@infradead.org>

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

linux-2.6.23-009-nfs_64_bit_ino_support.dif:

From: Peter Staubach <staubach@redhat.com>

Date: Fri, 03 Aug 2007 15:07:10 -0400

64 bit ino support for NFS client

Hi.

Attached is a patch to modify the NFS client code to support 64 bit ino's, as appropriate for the system and the NFS protocol version.

The code basically just expand the NFS interfaces for routines which handle ino's from using ino_t to u64 and then uses the fileid in the nfs_inode instead of i_ino in the inode. The code paths that were updated are in the getattr method and the readdir methods.

This should be no real change on 64 bit platforms. Since the ino_t is an unsigned long, it would already be 64 bits wide.

Thanx...

ps

Signed-off-by: Peter Staubach <staubach@redhat.com>

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

linux-2.6.23-010-nfs_attribute_timeout_handling.dif:

From: Fabio Olive Leite <fleite@redhat.com>

Date: Thu, 26 Jul 2007 22:59:00 -0300

Re: [NFS] [PATCH] Attribute timeout handling and wrapping u32 jiffies

I would like to discuss the idea that the current checks for attribute timeout using time_after are inadequate for 32bit architectures, since time_after works correctly only when the two timestamps being compared are within 2^31 jiffies of each other. The signed overflow caused by comparing values more than 2^31 jiffies apart will flip the result, causing incorrect assumptions of validity.

2^31 jiffies is a fairly large period of time (~25 days) when compared to the lifetime of most kernel data structures, but for long lived NFS mounts that can sit idle for months (think that for some reason autofs cannot be used), it is easy to compare inode attribute timestamps with very disparate or even bogus values (as in when jiffies have wrapped many times, where the comparison doesn't even make sense).

Currently the code tests for attribute timeout by simply adding the desired amount of jiffies to the stored timestamp and comparing that with the current timestamp of obtained attribute data with time_after. This is incorrect, as it returns true for the desired timeout period and another full 2^31 range of jiffies.

In testing with artificial jumps (several small jumps, not one big crank) of the jiffies I was able to reproduce a problem found in a server with very long lived NFS mounts, where attributes would not be refreshed even after touching files and directories in the server:

Initial uptime: 03:42:01 up 6 min, 0 users, load average: 0.01, 0.12, 0.07

NFS volume is mounted and time is advanced: 03:38:09 up 25 days, 2 min, 0 users, load average: 1.22, 1.05, 1.08

# ls -l /local/A/foo/bar /nfs/A/foo/bar -rw-r--r-- 1 root root 0 Dec 17 03:38 /local/A/foo/bar -rw-r--r-- 1 root root 0 Nov 22 00:36 /nfs/A/foo/bar

# touch /local/A/foo/bar

# ls -l /local/A/foo/bar /nfs/A/foo/bar -rw-r--r-- 1 root root 0 Dec 17 03:47 /local/A/foo/bar -rw-r--r-- 1 root root 0 Nov 22 00:36 /nfs/A/foo/bar

We can see the local mtime is updated, but the NFS mount still shows the old value. The patch below makes it work:

Initial setup... 07:11:02 up 25 days, 1 min, 0 users, load average: 0.15, 0.03, 0.04

# ls -l /local/A/foo/bar /nfs/A/foo/bar -rw-r--r-- 1 root root 0 Jan 11 07:11 /local/A/foo/bar -rw-r--r-- 1 root root 0 Jan 11 07:11 /nfs/A/foo/bar

# touch /local/A/foo/bar

# ls -l /local/A/foo/bar /nfs/A/foo/bar -rw-r--r-- 1 root root 0 Jan 11 07:14 /local/A/foo/bar -rw-r--r-- 1 root root 0 Jan 11 07:14 /nfs/A/foo/bar

Signed-off-by: Fabio Olive Leite <fleite@redhat.com>

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

linux-2.6.23-011-nfs_tiny_makefile_cleanup.dif:

From: Christoph Hellwig <hch@lst.de>

Date: Fri, 3 Aug 2007 16:20:32 +0200

[NFS] [PATCH] nfs: tiny makefile cleanup

no need to set up foo-objs these days.

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

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

linux-2.6.23-012-show_addr_as_ipaddr.dif:

From: Jeff Layton <jlayton@redhat.com>

Date: Mon, 30 Jul 2007 08:47:38 -0400

[NFS] [PATCH] NFS: show addr=ipaddr in /proc/mounts rather than

A minor thing, but useful when working with a server with multiple addrs. This looks like it might also be necessary if Miklos' effort to eliminate /etc/mtab ever comes to fruition.

When displaying mount options in /proc/mounts, the kernel prints "addr=hostname". This info is redundant since we already have the hostname displayed as part of the "device" section of the mount. This patch changes it to display the IP address to which the socket is connected.

Signed-off-by: Jeff Layton <jlayton@redhat.com>

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

linux-2.6.23-013-fix_a_signed_v_unsigned_comparison_in_rpcbind_s_xdr_routines.dif:

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

Date: Mon, 06 Aug 2007 11:56:31 -0400

SUNRPC: Fix a signed v. unsigned comparison in rpcbind's XDR routines

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

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

linux-2.6.23-014-fix_a_signed_v_unsigned_comparison_in_net_sunrpc_xprtsock_c.dif:

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

Date: Mon, 06 Aug 2007 11:56:42 -0400

SUNRPC: Fix a signed v. unsigned comparison in net/sunrpc/xprtsock.c

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

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

linux-2.6.23-015-use_standard_macros_for_printing_ip_addresses.dif:

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

Date: Mon, 06 Aug 2007 11:56:52 -0400

SUNRPC: Use standard macros for printing IP addresses

include/linux/kernel.h gives us some nice macros for formatting IP addresses. Use them.

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

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

linux-2.6.23-016-free_address_buffers_in_a_loop.dif:

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

Date: Mon, 06 Aug 2007 11:56:57 -0400

SUNRPC: Free address buffers in a loop

Use more generic logic to free buffers holding formatted addresses. This makes it less likely a bug will be introduced when adding additional buffer types in xs_format_peer_address().

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

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

linux-2.6.23-017-add_hex_formatted_address_support_to_rpc_peeraddr2str.dif:

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

Date: Mon, 06 Aug 2007 11:57:02 -0400

SUNRPC: Add hex-formatted address support to rpc_peeraddr2str()

Add support for the NFS client's need to export volume information with IP addresses formatted in hex instead of decimal.

This isn't used yet, but subsequent patches (not in this series) will change the NFS client to use this functionality.

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

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

linux-2.6.23-018-rename_xs_format_peer_addresses.dif:

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

Date: Mon, 06 Aug 2007 11:57:07 -0400

SUNRPC: Rename xs_format_peer_addresses

Prepare to add an IPv6 version of xs_format_peer_addresses by renaming it to xs_format_ipv4_peer_addresses.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Cc: Aurelien Charbon <aurelien.charbon@ext.bull.net>

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

linux-2.6.23-019-add_a_function_to_format_ipv6_addresses.dif:

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

Date: Mon, 06 Aug 2007 11:57:12 -0400

SUNRPC: add a function to format IPv6 addresses

Clone xs_format_ipv4_peer_addresses into an IPv6 version.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Cc: Aurelien Charbon <aurelien.charbon@ext.bull.net>

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

linux-2.6.23-020-add_support_for_ipv6_to_the_kernel_s_rpcbind_client.dif:

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

Date: Mon, 06 Aug 2007 11:57:18 -0400

SUNRPC: add support for IPv6 to the kernel's rpcbind client

Prepare for adding IPv6 support to the RPC client by adding IPv6 capabilities to rpcbind. Note that this is support on the query side only; registering IPv6 addresses with the local portmapper will come later.

Note we have to take care not to fall back to using version 2 of the rpcbind protocol if we're dealing with IPv6 address. Version 2 doesn't support IPv6 at all.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Cc: Aurelien Charbon <aurelien.charbon@ext.bull.net>

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

linux-2.6.23-021-introduce_support_for_setting_the_port_number_in_ipv6_addresses.dif:

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

Date: Mon, 06 Aug 2007 11:57:23 -0400

SUNRPC: Introduce support for setting the port number in IPv6 addresses

We could clone xs_set_port, but this is easier overall.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Cc: Aurelien Charbon <aurelien.charbon@ext.bull.net>

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

linux-2.6.23-022-rename_xs_bind_to_prepare_for_ipv6_specific_bind_method.dif:

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

Date: Mon, 06 Aug 2007 11:57:28 -0400

SUNRPC: Rename xs_bind() to prepare for IPv6-specific bind method

Prepare for introduction of IPv6-specific socket bind function.

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

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

linux-2.6.23-023-create_an_ipv6_savvy_mechanism_for_binding_to_a_reserved_port.dif:

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

Date: Mon, 06 Aug 2007 11:57:33 -0400

SUNRPC: create an IPv6-savvy mechanism for binding to a reserved port

Clone xs_bindresvport into two functions, one that can handle IPv4 addresses, and one that can handle IPv6 addresses.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Cc: Aurelien Charbon <aurelien.charbon@ext.bull.net>

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

linux-2.6.23-024-refactor_a_part_of_socket_connect_logic_into_a_helper_function.dif:

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

Date: Mon, 06 Aug 2007 11:57:38 -0400

SUNRPC: Refactor a part of socket connect logic into a helper function

Finishing a socket connect is the same for IPv4 and IPv6, so split it out into a helper.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Cc: Aurelien Charbon <aurelien.charbon@ext.bull.net>

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

linux-2.6.23-025-rename_ipv4_connect_workers.dif:

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

Date: Mon, 06 Aug 2007 11:57:43 -0400

SUNRPC: Rename IPv4 connect workers

Prepare for introduction of IPv6 versions of same.

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

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

linux-2.6.23-026-create_connect_workers_for_ipv6.dif:

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

Date: Mon, 06 Aug 2007 11:57:48 -0400

SUNRPC: create connect workers for IPv6

Clone separate connect worker functions for connecting AF_INET6 sockets.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Cc: Aurelien Charbon <aurelien.charbon@ext.bull.net>

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

linux-2.6.23-027-add_ipv6_address_support_to_net_sunrpc_xprtsock_c.dif:

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

Date: Mon, 06 Aug 2007 11:57:53 -0400

SUNRPC: Add IPv6 address support to net/sunrpc/xprtsock.c

Finalize support for setting up RPC client transports to remote RPC services addressed via IPv6.

Based on work done by Gilles Quillard at Bull Open Source.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Cc: Aurelien Charbon <aurelien.charbon@ext.bull.net>

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

linux-2.6.23-028-add_a_helper_for_extracting_the_address_using_the_correct_type.dif:

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

Date: Mon, 06 Aug 2007 11:57:58 -0400

SUNRPC: Add a helper for extracting the address using the correct type

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

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

linux-2.6.23-029-split_xs_reclassify_socket_into_an_ipv4_and_ipv6_version.dif:

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

Date: Mon, 06 Aug 2007 11:58:04 -0400

SUNRPC: Split xs_reclassify_socket into an IPv4 and IPv6 version

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

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

linux-2.6.23-030-add_support_for_formatted_universal_addresses.dif:

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

Date: Thu, 16 Aug 2007 16:03:26 -0400

SUNRPC: Add support for formatted universal addresses

"Universal addresses" are a string representation of an IP address and port. They are described fully in RFC 3530, section 2.2. Add support for generating them in the RPC client's socket transport module.

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

linux-2.6.23-031-fix_generation_of_universal_addresses_for_getversaddr.dif:

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

Date: Thu, 16 Aug 2007 16:03:31 -0400

SUNRPC: Fix generation of universal addresses for

Fix some problems with rpcbind v3 and v4 queries from the in-kernel rpcbind client:

1. The r_addr argument must be a full universal address, not just an IP address, and

2. The universal address in r_addr is the address of the remote rpcbind server, not the RPC service being requested

This addresses bugzilla.kernel.org report 8891 for 2.6.23-rc and greater.

In addition, if the rpcbind client is unable to start the rpcbind request, make sure not to leak the xprt.

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

linux-2.6.23-032-only_one_dprintk_is_needed_during_client_creation.dif:

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

Date: Tue, 11 Sep 2007 18:00:03 -0400

SUNRPC: Only one dprintk is needed during client creation

Remove one of two identical dprintk's that occur when an RPC client is created.

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

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

linux-2.6.23-033-fix_a_signed_v_unsigned_comparison_nit_in_rpc_bind_new_program.dif:

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

Date: Tue, 11 Sep 2007 18:00:09 -0400

SUNRPC: fix a signed v. unsigned comparison nit in rpc_bind_new_program

/home/cel/linux/net/sunrpc/clnt.c: In function ‘rpc_bind_new_program’: /home/cel/linux/net/sunrpc/clnt.c:445: warning: comparison between signed and unsigned

RPC version numbers are u32, not int.

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

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

linux-2.6.23-034-use_correct_argument_type_in_memcpy.dif:

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

Date: Tue, 11 Sep 2007 18:00:15 -0400

SUNRPC: Use correct argument type in memcpy()

Noticed by Tom Talpey <tmt@netapp.com>:

OBTW, there's a nit on that memcpy, too. The r_addr is an array, so

memcpy(&map->r_addr

is passing the address of the array as a char **. It's the same as map->r_addr, but technically the wrong type.

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

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

linux-2.6.23-035-make_sure_server_name_is_reasonable_before_trying_to_print_it.dif:

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

Date: Tue, 11 Sep 2007 18:00:20 -0400

SUNRPC: Make sure server name is reasonable before trying to print it

Check the length of the passed-in server name before trying to print it in the log.

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

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

linux-2.6.23-036-clean_up_in_rpc_show_tasks.dif:

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

Date: Tue, 11 Sep 2007 18:00:25 -0400

SUNRPC: Clean up in rpc_show_tasks

/home/cel/linux/net/sunrpc/clnt.c: In function ‘rpc_show_tasks’: /home/cel/linux/net/sunrpc/clnt.c:1538: warning: signed and unsigned type in conditional expression

This points out another case where a conditional expression returns a signed value in one arm and an unsigned value in the other.

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

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

linux-2.6.23-037-make_rpcb_decode_getaddr_more_picky_about_universal_addresses.dif:

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

Date: Tue, 11 Sep 2007 18:00:31 -0400

SUNRPC: Make rpcb_decode_getaddr more picky about universal addresses

Add better sanity checking of server replies to the GETVERSADDR reply decoder. Change the error return code: EIO is what other XDR decoding routines return if there is a failure while decoding.

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

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

linux-2.6.23-038-retry_bad_rpcbind_replies.dif:

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

Date: Tue, 11 Sep 2007 18:00:36 -0400

SUNRPC: Retry bad rpcbind replies

When a server returns a bad rpcbind reply, make rpcbind client recovery logic retry with an older protocol version. Older versions are more likely to work correctly.

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

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

linux-2.6.23-039-add_a_new_error_code_for_retry_waiting_for_another_binder.dif:

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

Date: Tue, 11 Sep 2007 18:00:41 -0400

SUNRPC: Add a new error code for retry waiting for another binder

Add new error code processing to the kernel's rpcbind client and to call_bind_status() to distinguish two cases:

Case 1: the remote has replied that the program/version tuple is not registered (returns -EACCES)

Case 2: another process is already in the middle of binding on this transport (now returns -EAGAIN)

This change allows more specific retry processing for each of these two cases.

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

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

linux-2.6.23-040-split_another_new_rpcbind_retry_error_code_from_eacces.dif:

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

Date: Tue, 11 Sep 2007 18:00:47 -0400

SUNRPC: Split another new rpcbind retry error code from EACCES

Add more new error code processing to the kernel's rpcbind client and to call_bind_status() to distinguish two cases:

Case 1: the remote has replied that the program/version tuple is not registered (returns EACCES)

Case 2: retry with a lesser rpcbind version (rpcb now returns EPFNOSUPPORT)

This change allows more specific error processing for each of these two cases. We now fail case 2 instead of retrying... it's a server configuration error not to support even rpcbind version 2. And don't expose this new error code to user land -- convert it to EIO before failing the RPC.

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

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

linux-2.6.23-041-rpc_bind_failures_should_be_permanent_for_null_requests.dif:

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

Date: Tue, 11 Sep 2007 18:00:52 -0400

SUNRPC: RPC bind failures should be permanent for NULL requests

The purpose of an RPC ping (a NULL request) is to determine whether the remote end is operating and supports the RPC program and version of the request.

If we do an RPC bind and the remote's rpcbind service says "this program or service isn't supported" then we have our answer already, and we should give up immediately.

This is good for the kernel mount client, as it will cause the request to fail, and then allow an immediate retry with different options.

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

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

linux-2.6.23-042-kernel_mount_client_should_use_async_bind.dif:

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

Date: Tue, 11 Sep 2007 18:00:58 -0400

NFS: Kernel mount client should use async bind

Simplify the in-kernel mount client by using autobind instead of an explicit call to rpc_getport_sync.

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

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

linux-2.6.23-043-init_default_port_in_kernel_mount.dif:

From: James Lentini <jlentini@netapp.com>

Date: Mon, 24 Sep 2007 17:32:49 -0400 (EDT)

[NFS] [PATCH] NFS: initialize default port in kernel mount client

If no mount server port number is specified, the previous change to the kernel mount client inadvertently allows the NFS server's port number to be the used as the mount server's port number. If the user specifies an NFS server port (-o port=x), the mount will fail.

The fix below sets the mount server's port to 0 if no mount server port is specified by the user.

Signed-off-by: James Lentini <jlentini@netapp.com>

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

linux-2.6.23-044-add_new_mountaddr_mount_option.dif:

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

Date: Tue, 11 Sep 2007 18:01:04 -0400

NFS: Add new 'mountaddr=' mount option

I got the 'mounthost=' option wrong - it shouldn't look for an address value, but rather a hostname value. However, the in-kernel mount client and NFS client cannot resolve a hostname by themselves; they rely on user-land to pass in the resolved address.

Create a new mount option that does take an address so that the mount program's address can be passed in. The mount hostname is now ignored by the kernel.

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

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

linux-2.6.23-045-convert_printk_s_to_dprintk_s_in_fs_nfs_nfs_xdr_c.dif:

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

Date: Tue, 11 Sep 2007 18:01:10 -0400

NFS: Convert printk's to dprintk's in fs/nfs/nfs?xdr.c

Due to recent edict to replace or remove printk's that can be triggered en masse by remote misbehavior. Left a few that only occur just before a BUG.

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

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

linux-2.6.23-046-convert_printk_s_to_dprintk_s_in_lockd_xdr_routines.dif:

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

Date: Tue, 11 Sep 2007 18:01:15 -0400

LOCKD: Convert printk's to dprintk's in lockd XDR routines

Due to recent edict to remove or replace printk's that might flood the system log.

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

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

linux-2.6.23-047-convert_printk_s_to_dprintk_s_in_nfsd_s_nfs4xdr.dif:

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

Date: Tue, 11 Sep 2007 18:01:20 -0400

NFSD: Convert printk's to dprintk's in NFSD's nfs4xdr

Due to recent edict to remove or replace printk's that can flood the system log.

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

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

linux-2.6.23-048-move_per_transport_rpcbind_netid_s.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:42:38 -0400

SUNRPC: move per-transport rpcbind netid's

Move the TCP/UDP rpcbind netid's from the rpcbind client to a global header.

Signed-off-by: Tom Talpey <tmt@netapp.com>

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

linux-2.6.23-049-export_per_transport_rpcbind_netid_s.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:43:05 -0400

SUNRPC: export per-transport rpcbind netid's

The rpcbind (v3+) netid is provided by each RPC client transport. This fixes an omission in IPv6 rpcbind client support, and enables future extension.

Signed-off-by: Tom Talpey <tmt@netapp.com>

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

linux-2.6.23-050-move_nfs_parsed_mount_data_structure_definition.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:43:29 -0400

NFS: move nfs_parsed_mount_data structure definition

In preparation for rearranging the nfs mount argument passing, make the nfs_parsed_mount_data struct visible across nfs kernel files.

Signed-off-by: Tom Talpey <tmt@netapp.com>

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

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

linux-2.6.23-051-use_in_kernel_mount_argument_structure_for_nfsv_23_mounts.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:43:56 -0400

NFS: use in-kernel mount argument structure for nfsv[23] mounts

The user-visible nfs_mount_data does not contain sufficient data to describe new mount options, and also is now a legacy structure. Replace it with the internal nfs_parsed_mount_data for nfsv[23] in-kernel use.

Signed-off-by: Tom Talpey <tmt@netapp.com>

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

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

linux-2.6.23-052-use_in_kernel_mount_argument_structure_for_nfsv4_mounts.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:44:33 -0400

NFS: use in-kernel mount argument structure for nfsv4 mounts

The user-visible nfs4_mount_data does not contain sufficient data to describe new mount options, and also is now a legacy structure. Replace it with the internal nfs_parsed_mount_data for nfsv4 in-kernel use.

Signed-off-by: Tom Talpey <tmt@netapp.com>

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

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

linux-2.6.23-053-fix_bug_in_nfs4_validate_mount_data.dif:

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

Date: Thu, 20 Sep 2007 20:23:51 -0400

NFSv4: Fix a bug in nfs4_validate_mount_data()

The previous patch introduced a bug when copying the server address.

Also clarify a copy into the auth_flavours array: currently the two size calculations are equivalent, but we may decide to change the size of auth_flavors[] at some point.

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

linux-2.6.23-054-mark_bulk_read_write_data_in_xdrbuf.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:44:58 -0400

SUNRPC: mark bulk read/write data in xdrbuf

Adds a flag word to the xdrbuf struct which indicates any bulk disposition of the data. This enables RPC transport providers to marshal it efficiently/appropriately, and may enable other optimizations.

Signed-off-by: Tom Talpey <tmt@netapp.com>

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

linux-2.6.23-055-add_export_symbol_gpl_for_generic_transport_functions.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:45:36 -0400

SUNRPC: add EXPORT_SYMBOL_GPL for generic transport functions

SUNRPC: add EXPORT_SYMBOL_GPL for generic transport functions

As a preface to allowing arbitrary transport modules to be loaded dynamically, add EXPORT_SYMBOL_GPL for all generic transport functions that a transport implementation might want to use.

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

Acked-by: Tom Talpey <tmt@netapp.com>

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

linux-2.6.23-056-provide_a_new_api_for_registering_transport_implementations.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:46:00 -0400

SUNRPC: Provide a new API for registering transport implementations

To allow transport capabilities to be loaded dynamically, provide an API for registering and unregistering the transports with the RPC client. Eventually xprt_create_transport() will be changed to search the list of registered transports when initializing a fresh transport.

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

Signed-off-by: Tom Talpey <tmt@netapp.com>

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

linux-2.6.23-057-finish_api_to_load_rpc_transport_implementations_dynamically.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:46:39 -0400

SUNRPC: Finish API to load RPC transport implementations dynamically

Allow RPC client transport implementations to be loaded as needed, or as they become available from distributors or third-party vendors.

Note that we leave the IP sockets implementation in sunrpc.o permanently, as IP functionality is always available in any kernel that runs NFS.

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

Signed-off-by: Tom Talpey <tmt@netapp.com>

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

linux-2.6.23-058-rename_the_rpc_xprtsock_create_structure.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:47:07 -0400

SUNRPC: rename the rpc_xprtsock_create structure

To prepare for including non-sockets-based RPC transports, change the overly suggestive name of the transport creation arguments struct.

Signed-off-by: Tom Talpey <tmt@netapp.com>

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

linux-2.6.23-059-rearrange_rpc_sockets_definitions.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:47:31 -0400

SUNRPC: rearrange RPC sockets definitions

To prepare for including non-sockets-based RPC transports, move the sockets-dependent definitions into their own file.

Signed-off-by: Tom Talpey <tmt@netapp.com>

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

linux-2.6.23-060-nfs_sunrpc_support_transport_protocol_naming.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:47:57 -0400

NFS/SUNRPC: support transport protocol naming

To prepare for including non-sockets-based RPC transports, select RPC transports by an identifier (to be used in following patches).

Signed-off-by: Tom Talpey <tmt@netapp.com>

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

linux-2.6.23-061-nfs_sunrpc_use_transport_protocol_naming.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:48:23 -0400

NFS/SUNRPC: use transport protocol naming

Instead of an { address family, raw IP protocol number }-tuple, use the newly-defined RPC identifier when creating clients in the upper layers.

Signed-off-by: Tom Talpey <tmt@netapp.com>

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

linux-2.6.23-062-nfs_print_accurate_transport_protocol.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:48:47 -0400

NFS - print accurate transport protocol

Use the per-transport strings to display the transport protocol accurately.

Signed-off-by: Tom Talpey <tmt@netapp.com>

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

linux-2.6.23-063-kconfig_and_header_file_with_rpcrdma_protocol_definitions.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:49:15 -0400

RPCRDMA: Kconfig and header file with rpcrdma protocol definitions

This file implements the configuration target, protocol template and constants for the rpcrdma transport framing, for use by the xprtrdma rpc transport implementation.

Signed-off-by: Tom Talpey <talpey@netapp.com>

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

linux-2.6.23-064-support_rdma_mounts.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:49:41 -0400

NFS: support RDMA mounts

Adds hooks to the string-based NFS mount to support an "rdma" protocol option.

Signed-off-by: Tom Talpey <tmt@netapp.com>

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

linux-2.6.23-065-rpc_rdma_transport_switch.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:50:12 -0400

RPCRDMA: rpc rdma transport switch

This implements the configuration and building of the core transport switch implementation of the rpcrdma transport. Stubs are provided for the rpcrdma protocol handling, and the infiniband/iwarp verbs interface. These are provided in following patches.

Signed-off-by: Tom Talpey <talpey@netapp.com>

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

linux-2.6.23-066-rpc_rdma_protocol_implementation.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:50:42 -0400

RPCRDMA: rpc rdma protocol implementation

This implements the marshaling and unmarshaling of the rpcrdma transport headers. Connection management is also addressed.

Signed-off-by: Tom Talpey <talpey@netapp.com>

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

linux-2.6.23-067-rpc_rdma_verbs_interface_implementation.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Mon, 10 Sep 2007 13:51:18 -0400

RPCRDMA: rpc rdma verbs interface implementation

This implements the interface from rpcrdma to the RDMA verbs interface supported by Infniband and iWARP.

Signed-off-by: Tom Talpey <talpey@netapp.com>

Signed-off-by: James Lentini <jlentini@netapp.com>

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

linux-2.6.23-068-add_rdma_dependency_to_sunrpc_xprt_rdma.dif:

From: \\\"Talpey, Thomas\\\" <Thomas.Talpey@netapp.com>

Date: Thu, 20 Sep 2007 17:37:58 -0400

SUNRPC: Add RDMA dependency to SUNRPC_XPRT_RDMA

Add a dependency on RDMA before enabling SUNRPC_XPRT_RDMA Yes, "INFINIBAND" also turns on iWARP and other RDMA support.

Signed-off-by: Tom Talpey <talpey@netapp.com>

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

linux-2.6.23-069-verify_server_address_before_invoking_mount_client.dif:

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

Date: Mon, 24 Sep 2007 15:39:50 -0400

NFS: Verify server address before invoking in-kernel mount client

Re-order mount option sanity checking slightly to ensure we have a valid server address *before* trying to do the mountd RPC call.

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

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

linux-2.6.23-070-show_nointr_mount_option.dif:

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

Date: Mon, 24 Sep 2007 15:39:55 -0400

NFS: Show "nointr" mount option

The default "intr" setting is different for NFS and NFSv4. To avoid confusion on this issue, don't hide the "nointr" option in /proc/mounts.

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

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

linux-2.6.23-071-fix_bytes_per_op_accounting_for_udp.dif:

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

Date: Mon, 24 Sep 2007 15:40:00 -0400

SUNRPC: Fix bytes-per-op accounting for RPC over UDP

NFS performance metrics reported zero bytes sent per op when mounting with UDP. The UDP socket transport wasn't properly counting the number of bytes sent.

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

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

linux-2.6.23-072-dont_call_nfs_renew_times_in_nfs_dentry_iput.dif:

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

Date: Mon, 24 Sep 2007 15:40:06 -0400

NFS: Don't call nfs_renew_times() in nfs_dentry_iput()

Negative dentries need to be reverified after an asynchronous unlink.

Quoth Trond:

"Unfortunately I don't think that we can avoid revalidating the resulting negative dentry since the UNLINK call is asynchronous, and so the new verifier on the directory will only be known a posteriori."

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

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

linux-2.6.23-073-eliminate_nfs_renew_times.dif:

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

Date: Mon, 24 Sep 2007 15:40:11 -0400

NFS: Eliminate nfs_renew_times()

The nfs_renew_times() function plants the current time in jiffies in dentry->d_time. But a call to nfs_renew_times() is always followed by another call that overwrites dentry->d_time. Get rid of the nfs_renew_times() calls.

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

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

linux-2.6.23-074-eliminate_nfs_refresh_verifier.dif:

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

Date: Mon, 24 Sep 2007 15:40:16 -0400

NFS: Eliminate nfs_refresh_verifier()

nfs_set_verifier() and nfs_refresh_verifier() do exactly the same thing, so replace one with the other.

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

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

linux-2.6.23-075-add_nfs_file_open_context.dif:

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

Date: Fri, 10 Aug 2007 17:44:28 -0400

NFS: Add a helper to extract the nfs_open_context from a struct file

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

linux-2.6.23-076-replace_open_coded_accesses_to_file_private_data.dif:

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

Date: Fri, 10 Aug 2007 17:44:32 -0400

NFS: Replace file->private_data with calls to nfs_file_open_context()

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

linux-2.6.23-077-simplify_nfs4_do_access.dif:

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

Date: Fri, 10 Aug 2007 17:45:10 -0400

NFSv4: Simplify _nfs4_do_access()

Currently, _nfs4_do_access() is just a copy of nfs_do_access() with added conversion of the open flags into an access mask. This patch merges the duplicate functionality.

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

linux-2.6.23-078-nfs4_make_access_return_attrs.dif:

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

Date: Fri, 10 Aug 2007 17:45:11 -0400

NFSv4: Make NFSv4 ACCESS calls return attributes too...

It doesn't really make sense to cache an access call without also revalidating the attributes.

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

linux-2.6.23-079-optimise_nfs_update_inode.dif:

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

Date: Wed, 15 Aug 2007 12:49:17 -0400

NFS: Fix over-conservative attribute invalidation in nfs_update_inode()

We should always be declaring the attribute cache as valid after having updated it.

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

linux-2.6.23-080-post_op_update_inode_should_call_nfs_refresh_inode.dif:

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

Date: Wed, 15 Aug 2007 12:59:12 -0400

NFS: nfs_post_op_update_inode() should call nfs_refresh_inode()

Ensure that we don't clobber the results from a more recent getattr call...

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

linux-2.6.23-081-nfs_verify_change_attribute.dif:

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

Date: Fri, 28 Sep 2007 14:20:12 -0400

NFS: fix nfs_verify_change_attribute

We always want to check that the verifier and directory cache_change_attribute match. This also allows us to remove the 'wraparound hack' for the cache_change_attribute. If we're only checking for equality, then we don't care about wraparound issues.

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

linux-2.6.23-082-data_unstable_fixes.dif:

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

Date: Fri, 28 Sep 2007 14:20:33 -0400

NFS: Fix dcache revalidation bugs

We don't need to force a dentry lookup just because we're making changes to the directory.

Don't update nfsi->cache_change_attribute in nfs_end_data_update: that overrides the NFSv3/v4 weak consistency checking that tells us our update was the only one, and that tells us the dcache is still valid.

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

linux-2.6.23-083-wcc_invalidate_page_cache_if_dir.dif:

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

Date: Sun, 30 Sep 2007 17:03:25 -0400

NFS: nfs_wcc_update_inode: directory caches are always invalidated

We must ensure that the readdir data is always invalidated whether or not the weak cache consistency data update succeeds.

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

linux-2.6.23-084-dont_revalidate_dcache_if_wcc_update_succeeds.dif:

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

Date: Thu, 27 Sep 2007 10:07:31 -0400

NFS: Don't force a dcache revalidation if nfs_wcc_update_inode succeeds

The reason is that if the weak cache consistency update was successful, then we know that our client must be the only one that changed the directory, and we've already updated the dcache to reflect the change.

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

linux-2.6.23-085-nfsv4_revalidate_if_change_attr.dif:

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

Date: Thu, 27 Sep 2007 15:57:24 -0400

NFSv4: Don't use ctime/mtime for determining when to invalidate the caches

In NFSv4 we should only be looking at the change attribute.

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

linux-2.6.23-086-no_readdirplus_if_cache_invalid.dif:

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

Date: Sun, 30 Sep 2007 18:01:13 -0400

NFS: Don't use readdirplus data if the page cache is invalid

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

linux-2.6.23-087-fix_atime_revalidation_in_readdir.dif:

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

Date: Fri, 28 Sep 2007 17:11:45 -0400

NFS: Fix atime revalidation in readdir()

NFSv3 will correctly update atime on a readdir call, so there is no need to set the NFS_INO_INVALID_ATIME flag unless the call to nfs_refresh_inode() fails.

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

linux-2.6.23-088-fix_atime_revalidation_in_read.dif:

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

Date: Fri, 28 Sep 2007 17:20:07 -0400

NFS: Fix atime revalidation in read()

NFSv3 will correctly update atime on a read() call, so there is no need to set the NFS_INO_INVALID_ATIME flag unless the call to nfs_refresh_inode() fails.

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

linux-2.6.23-089-fix_nfs_revalidate_inode.dif:

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

Date: Fri, 28 Sep 2007 19:11:33 -0400

NFS: Fix the ESTALE "revalidation" in _nfs_revalidate_inode()

For one thing, the test NFS_ATTRTIMEO() == 0 makes no sense: we're testing whether or not the cache timeout length is zero, which is totally unrelated to the issue of whether or not we trust the file staleness.

Secondly, we do not want to retry the GETATTR once a file has been declared stale by the server: we rather want to discard that inode as soon as possible, since there are broken servers still in use out there that reuse filehandles on new files.

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

linux-2.6.23-090-remove_bogus_check_in_nfs_update_inode.dif:

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

Date: Sun, 30 Sep 2007 15:13:17 -0400

NFS: Remove bogus check of cache_change_attribute in nfs_update_inode

Remove the bogus 'data_stable' check in nfs_update_inode. The cache_change_attribute tells you if the directory changed on the server, and should have nothing to do with the file length.

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

linux-2.6.23-091-fake_up_v4_wcc.dif:

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

Date: Sun, 30 Sep 2007 15:21:24 -0400

NFS: Fake up 'wcc' attributes to prevent cache invalidation after write

NFSv2 and v4 don't offer weak cache consistency attributes on WRITE calls. In NFSv3, returning wcc data is optional. In all cases, we want to prevent the client from invalidating our cached data whenever ->write_done() attempts to update the inode attributes.

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

linux-2.6.23-092-fix_nfs_save_change_attribute.dif:

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

Date: Sat, 29 Sep 2007 17:14:03 -0400

NFS: Fix the sign of the return value of nfs_save_change_attribute()

Also fix up the comments.

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

linux-2.6.23-093-fix_nfs_verify_change_attribute.dif:

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

Date: Sat, 29 Sep 2007 17:15:01 -0400

NFS: Fix nfs_verify_change_attribute()

We don't care about whether or not some other process on our client is changing the directory while we're in nfs_lookup_revalidate(), because the dcache will take care of ensuring local atomicity. We can therefore remove the test for nfs_caches_unstable().

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

linux-2.6.23-094-fix_nfs_instantiate.dif:

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

Date: Sat, 29 Sep 2007 17:41:33 -0400

NFS: Ensure nfs_instantiate() invalidates the parent dir on error

Also ensure that it drops the dentry in this case.

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

linux-2.6.23-095-nfs_instantiate_should_set_verifier.dif:

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

Date: Mon, 1 Oct 2007 21:51:38 -0400

NFS: nfs_instantiate() should set the dentry verifier

That will also allow us to remove the calls in mknod and mkdir. In addition it will ensure that symlinks set it correctly.

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

linux-2.6.23-096-nfsv4_dont_hash_on_o_excl_create.dif:

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

Date: Tue, 2 Oct 2007 18:38:53 -0400

NFS: Don't hash the negative dentry when optimising for an O_EXCL open

We don't want to leave an unverified hashed negative dentry if the exclusive create fails to complete.

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

linux-2.6.23-097-nfs4_fix_open_revalidate_verifier.dif:

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

Date: Wed, 3 Oct 2007 15:58:38 -0400

NFS: Fix a bug in nfs_open_revalidate()

We want to set the verifier when the call to nfs4_open_revalidate() _succeeds_.

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

linux-2.6.23-098-nfs_revalidate_mapping_dont_reval_dentries.dif:

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

Date: Sun, 30 Sep 2007 15:31:19 -0400

NFS: Don't set cache_change_attribute in nfs_revalidate_mapping

The attribute revalidation code will already have taken care of resetting nfsi->cache_change_attribute.

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

linux-2.6.23-099-dont_reval_dentries_on_size_or_ctime_change.dif:

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

Date: Mon, 1 Oct 2007 09:56:59 -0400

NFS: Don't revalidate dentries on directory size or ctime changes

We only need to look at the mtime changes...

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

linux-2.6.23-100-nfs_post_op_update_inode_dont_reval_dentries.dif:

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

Date: Mon, 1 Oct 2007 09:59:15 -0400

NFS: nfs_post_op_update_inode don't update cache_change_attribute

If nfs_post_op_update_inode fails because the server didn't return any attributes, then we let the subsequent inode revalidation update cache_change_attribute.

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

linux-2.6.23-101-nfs_mark_for_revalidate_dont_reval_dentries.dif:

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

Date: Mon, 1 Oct 2007 10:00:23 -0400

NFS: nfs_mark_for_revalidate don't update cache_change_attribute

Just let the subsequent inode revalidation do the update...

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

linux-2.6.23-102-nfs_lookup_revalidate_dont_cache_verifier.dif:

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

Date: Mon, 1 Oct 2007 13:46:53 -0400

NFS: don't cache the verifer across ->lookup() calls

If the ->lookup() call causes the directory verifier to change, then there is still no need to use the old verifier, since our dentry has been verified.

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

linux-2.6.23-103-remove_bogus_mark_for_revalidate_in_nfs_lookup.dif:

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

Date: Mon, 1 Oct 2007 13:54:51 -0400

NFS: Remove bogus nfs_mark_for_revalidate() in nfs_lookup

The parent of the newly materialised dentry has just been revalidated...

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

linux-2.6.23-104-fix_NFS_CACHEINV.dif:

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

Date: Sat, 29 Sep 2007 17:25:43 -0400

NFS: NFS_CACHEINV() should not test for nfs_caches_unstable()

The fact that we're in the process of modifying the inode does not mean that we should not invalidate the attribute and data caches. The defensive thing is to always invalidate when we're confronted with inode mtime/ctime or change_attribute updates that we do not immediately recognise.

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

linux-2.6.23-105-remove_nfsi_data_updates.dif:

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

Date: Sat, 29 Sep 2007 17:34:46 -0400

NFS: Remove NFS_I(inode)->data_updates

We have no more users...

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

linux-2.6.23-106-remove_nfs_begin_end_data_update.dif:

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

Date: Sat, 29 Sep 2007 17:48:19 -0400

NFS: Remove nfs_begin_data_update/nfs_end_data_update

The lower level routines in fs/nfs/proc.c, fs/nfs/nfs3proc.c and fs/nfs/nfs4proc.c should already be dealing with the revalidation issues.

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

linux-2.6.23-107-set_nfsi_last_updated_on_attribute_changes_only.dif:

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

Date: Mon, 1 Oct 2007 18:57:50 -0400

NFS: Reset nfsi->last_updated only if the attribute changed

Otherwise set it to nfsi->read_cache_jiffies in order to prevent jiffy wraparound issues.

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

linux-2.6.23-108-optimise_nfs_lookup_revalidate.dif:

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

Date: Tue, 2 Oct 2007 12:54:39 -0400

NFS: Optimise nfs_lookup_revalidate()

We don't need to call nfs_revalidate_inode() on the directory if we already know that the verifiers don't match.

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

linux-2.6.23-109-dont_revalidate_dir_in_nfs_atomic_lookup.dif:

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

Date: Tue, 2 Oct 2007 12:57:24 -0400

NFSv4: Don't revalidate the directory in nfs_atomic_lookup()

Why bother, since the call to nfs4_atomic_open() will do it for us.

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

linux-2.6.23-110-nfsv4_no_open_revalidate_on_negative_dentries.dif:

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

Date: Mon, 1 Oct 2007 20:10:12 -0400

NFSv4: Use NFSv2/v3 rules for negative dentries in nfs_open_revalidate

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

linux-2.6.23-111-nfs_atomic_open_set_verifier_on_negative_dentry.dif:

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

Date: Mon, 1 Oct 2007 21:42:01 -0400

NFSv4: Fix nfs_atomic_open() to set the verifier on negative dentries too

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

linux-2.6.23-112-nfs3_proc_lookup_always_use_dirattrs.dif:

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

Date: Tue, 2 Oct 2007 10:30:00 -0400

NFSv3: Always use directory post-op attributes in nfs3_proc_lookup

LOOKUP returns the directory post-op attributes whether or not the operation was successful.

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

linux-2.6.23-113-remove_nfs_reval_fsid.dif:

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

Date: Tue, 2 Oct 2007 17:11:54 -0400

NFS: Remove the redundant nfs_reval_fsid()

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

linux-2.6.23-114-dont_zap_readdir_caches_on_error.dif:

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

Date: Tue, 2 Oct 2007 19:02:07 -0400

NFS: Don't zap the readdir caches upon error

If necessary, the caches will get zapped under normal revalidation.

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

linux-2.6.23-115-be_strict_about_dentry_revalidate_when_o_excl.dif:

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

Date: Tue, 2 Oct 2007 19:13:04 -0400

NFS: Be strict about dentry revalidation when doing exclusive create

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

linux-2.6.23-116-use_d_add_in_nfs_link.dif:

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

Date: Tue, 2 Oct 2007 21:58:05 -0400

NFS: Ensure that nfs_link() returns a hashed dentry

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

linux-2.6.23-118-simplify_filehandle_revalidation.dif:

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

Date: Tue, 2 Oct 2007 23:13:32 -0400

NFS: Simplify filehandle revalidation

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

linux-2.6.23-119-get_rid_of_obsolete_macros.dif:

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

Date: Fri, 28 Sep 2007 19:22:40 -0400

NFS: Get rid of some obsolete macros

- NFS_READTIME, NFS_CHANGE_ATTR are completely unused.

- Inline the few remaining uses of NFS_ATTRTIMEO, and remove.

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

linux-2.6.23-120-add_server_port_to_rpc_pipe_info_file.dif:

From: J. Bruce Fields <bfields@citi.umich.edu>

Date: Wed, 26 Sep 2007 14:38:09 -0400

nfs: add server port to rpc_pipe info file

On the client, when an alternate server port is specified on the mount commandline, we need to make sure gssd knows about it.

Also, on the server side, when we're sending krb5 callbacks to the client, we'll use the same mechanism to let gssd know about the callback port.

Thanks to Olga Kornievskaia for testing and for an earlier implementation.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu> Cc: Olga Kornievskaia <aglo@citi.umich.edu>

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

linux-2.6.23-121-fix_default_hostname_created_in_rpc_create.dif:

From: J. Bruce Fields <bfields@citi.umich.edu>

Date: Wed, 26 Sep 2007 14:38:08 -0400

SUNRPC: Fix default hostname created in rpc_create()

Since 43780b87fa7..., rpc_create() fills in a default hostname based on the ip address if the servername passed in is null. A small typo made that default incorrect. (But this information appears to be used only for debugging right now, so I don't believe the typo causes any bugs in the current kernel.)

Thanks to Olga Kornievskaia for bug report and testing.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Cc: Olga Kornievskaia <aglo@citi.umich.edu> Cc: Chuck Lever <chuck.lever@oracle.com>

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

linux-2.6.23-122-use_correct_type_in_buffer_length_calculations.dif:

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

Date: Wed, 26 Sep 2007 14:38:10 -0400

SUNRPC: Use correct type in buffer length calculations

Use correct type signage in gss_krb5_remove_padding() when doing length calculations. Both xdr_buf.len and iov.iov_len are size_t, which is unsigned; so use an unsigned type for our temporary length variable to ensure we don't overflow it..

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

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

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

linux-2.6.23-123-make_struct_rpcb_program_static.dif:

From: Adrian Bunk <bunk@stusta.de>

Date: Wed, 13 Jun 2007 01:03:13 +0200

[2.6 patch] net/sunrpc/rpcb_clnt.c: make struct rpcb_program static

This patch makes the needlessly global struct rpcb_program static.

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

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

linux-2.6.23-124-clean_up_duplicate_includes.dif:

From: Jesper Juhl <jesper.juhl@gmail.com>

Date: Sat, 21 Jul 2007 17:03:28 +0200

[23/37] Clean up duplicate includes in

Hi,

This patch cleans up duplicate includes in include/linux/nfs_fs.h

Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>

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

linux-2.6.23-125-fix_udp_transmit_bug.dif:

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

Date: Mon, 1 Oct 2007 11:43:37 -0400

SUNRPC: Fix buggy UDP transmission

xs_sendpages() may return a negative result. We sure as hell don't want to add that to the 'tk_bytes_sent' tally...

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

linux-2.6.23-126-dont_call_xprt_release_in_call_allocate.dif:

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

Date: Mon, 1 Oct 2007 12:06:44 -0400

SUNRPC: Don't call xprt_release() if call_allocate fails

It completely fouls up the RPC call statistics, and serves no useful purpose.

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

linux-2.6.23-127-dont_call_xprt_release_in_call_refresh.dif:

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

Date: Mon, 1 Oct 2007 12:06:48 -0400

SUNRPC: Don't call xprt_release in call refresh

Call it from call_verify() instead...

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

linux-2.6.23-128-nfs_use_nfs_refresh_inode.dif:

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

Date: Mon, 8 Oct 2007 14:10:31 -0400

NFS: Use nfs_refresh_inode() in ops that aren't expected to change the inode

nfs_post_op_update_inode() is really only meant to be used if we expect the inode and its attributes to have changed in some way.

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

linux-2.6.23-129-nfs_fix_connectathon_failure.dif:

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

Date: Mon, 8 Oct 2007 09:24:22 -0400

NFS: Fix a connectathon regression in NFSv3 and NFSv4

We're failing basic test6 against Linux servers because they lack a correct change attribute. The fix is to assume that we always want to invalidate the readdir caches when we call update_changeattr and/or nfs_post_op_update_inode on a directory.

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

linux-2.6.23-130-nfs_refresh_inode_clear_attributes.dif:

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

Date: Mon, 8 Oct 2007 14:26:13 -0400

NFS: nfs_refresh_inode should clear cache_validity flags on success

If the cached attributes match the ones supplied in the fattr, then assume we've revalidated the inode.

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

linux-2.6.23-131-add_a_boot_parameter_to_disable_ino64.dif:

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

Date: Tue, 9 Oct 2007 12:01:04 -0400

NFS: Add a boot parameter to disable 64 bit inode numbers

This boot parameter will allow legacy 32-bit applications which call stat() to continue to function even if the NFSv3/v4 server uses 64-bit inode numbers.

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

linux-2.6.23-132-fix_typo_in_nfs_inode_reclaim_delegation.dif:

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

Date: Thu, 11 Oct 2007 14:56:03 -0400

NFSv4: Fix a typo in nfs_inode_reclaim_delegation

We were intending to put the previous instance of delegation->cred before setting a new one.

Thanks to David Howells for spotting this.

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

linux-2.6.23-133-fix_write_race.dif:

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

Date: Thu, 18 Oct 2007 17:08:05 -0400

NFS: Fix a writeback race...

This patch fixes a regression that was introduced by commit 44dd151d5c21234cc534c47d7382f5c28c3143cd

We cannot zero the user page in nfs_mark_uptodate() any more, since

a) We'd be modifying the page without holding the page lock b) We can race with other updates of the page, most notably because of the call to nfs_wb_page() in nfs_writepage_setup().

Instead, we do the zeroing in nfs_update_request() if we see that we're creating a request that might potentially be marked as up to date.

Thanks to Olivier Paquet for reporting the bug and providing a test-case.

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

linux-2.6.23-134-fix_sillyrename_race.dif:

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

Date: Mon, 15 Oct 2007 18:17:53 -0400

NFS: Fix a race in sillyrename

lookup() and sillyrename() can race one another because the sillyrename() completion cannot take the parent directory's inode->i_mutex since the latter may be held by whoever is calling dput().

We therefore have little option but to add extra locking to ensure that nfs_lookup() and nfs_atomic_open() do not race with the sillyrename completion. If somebody has looked up the sillyrenamed file in the meantime, we just transfer the sillydelete information to the new dentry.

Please refer to the bug-report at http://bugzilla.linux-nfs.org/show_bug.cgi?id=150

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

linux-2.6.23-135-wait_on_close.dif:

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

Date: Thu, 18 Oct 2007 18:03:27 -0400

NFSv4: Ensure that we wait for the CLOSE request to complete

Otherwise, we do end up breaking close-to-open semantics. We also end up breaking some of the silly-rename tests in Connectathon on some setups.

Please refer to the bug-report at http://bugzilla.linux-nfs.org/show_bug.cgi?id=150

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

linux-2.6.23-136-fix_rpc_cred_leak_in_delegations.dif:

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

Date: Thu, 18 Oct 2007 19:59:20 -0400

NFSv4: Fix an rpc_cred reference leakage in fs/nfs/delegation.c

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

linux-2.6.23-137-fix_build_break_with_nfsv4_n.dif:

From: Olof Johansson <olof@lixom.net>

Date: Fri, 19 Oct 2007 20:41:49 -0500

nfs: Fix build break with CONFIG_NFS_V4=n

Signed-off-by: Olof Johansson <olof@lixom.net> Cc: Trond Myklebust <Trond.Myklebust@netapp.com>

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

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

linux-2.6.23-138-fix_includes_in_fs_nfs_unlink_c.dif:

From: Linus Torvalds <<torvalds@woody.linux-foundation.org>>

Date: Fri Oct 19 19:59:18 2007 -0700

Avoid compile error in fs/nfs/unlink.c

Erez Zadok reports that certain configurations fail to build due to schedule() TASK_[UN]INTERRUPTIBLE not being declared. Add proper include files to fix.

Cc: Erez Zadok <ezk@cs.sunysb.edu> Cc: Trond Myklebust <Trond.Myklebust@netapp.com>

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

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

linux-2.6.23-139-ensure_nfsv2_revalidates_dir.dif:

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

Date: Sat, 20 Oct 2007 13:07:21 -0400

NFSv2: Ensure that the directory metadata gets revalidated on file create

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

linux-2.6.23-140-fix_typo_in_nfs_call_unlink.dif:

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

Date: Sun, 21 Oct 2007 12:02:22 -0400

NFS: Fix a typo in nfs_call_unlink()

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

linux-2.6.23-NFS_ALL.dif:

All of the above

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.23-001-add..>2007-08-28 22:30 2.3K 
[TXT]linux-2.6.23-002-cle..>2007-08-28 22:30 6.0K 
[TXT]linux-2.6.23-003-cle..>2007-08-28 22:30 2.9K 
[TXT]linux-2.6.23-004-rem..>2007-10-21 18:26 777  
[TXT]linux-2.6.23-005-add..>2007-08-28 22:30 3.5K 
[TXT]linux-2.6.23-006-opt..>2007-08-28 22:30 1.8K 
[TXT]linux-2.6.23-007-osy..>2007-08-28 22:30 5.7K 
[TXT]linux-2.6.23-008-con..>2007-08-28 22:30 2.1K 
[TXT]linux-2.6.23-009-nfs..>2007-09-19 16:46 4.5K 
[TXT]linux-2.6.23-010-nfs..>2007-09-19 16:46 4.8K 
[TXT]linux-2.6.23-011-nfs..>2007-08-28 22:30 675  
[TXT]linux-2.6.23-012-sho..>2007-09-21 00:25 1.2K 
[TXT]linux-2.6.23-013-fix..>2007-08-28 22:30 876  
[TXT]linux-2.6.23-014-fix..>2007-08-28 22:30 848  
[TXT]linux-2.6.23-015-use..>2007-08-28 22:30 1.2K 
[TXT]linux-2.6.23-016-fre..>2007-08-28 22:30 1.6K 
[TXT]linux-2.6.23-017-add..>2007-08-28 22:30 1.7K 
[TXT]linux-2.6.23-018-ren..>2007-08-28 22:30 1.6K 
[TXT]linux-2.6.23-019-add..>2007-08-28 22:30 2.1K 
[TXT]linux-2.6.23-020-add..>2007-08-28 22:30 4.0K 
[TXT]linux-2.6.23-021-int..>2007-08-28 22:30 1.3K 
[TXT]linux-2.6.23-022-ren..>2007-08-28 22:30 1.7K 
[TXT]linux-2.6.23-023-cre..>2007-08-28 22:30 1.8K 
[TXT]linux-2.6.23-024-ref..>2007-08-28 22:30 5.5K 
[TXT]linux-2.6.23-025-ren..>2007-08-28 22:30 2.5K 
[TXT]linux-2.6.23-026-cre..>2007-08-28 22:30 3.7K 
[TXT]linux-2.6.23-027-add..>2007-09-25 17:55 4.4K 
[TXT]linux-2.6.23-028-add..>2007-09-25 17:55 2.5K 
[TXT]linux-2.6.23-029-spl..>2007-09-25 17:55 3.0K 
[TXT]linux-2.6.23-030-add..>2007-09-25 17:55 2.0K 
[TXT]linux-2.6.23-031-fix..>2007-08-28 22:30 2.5K 
[TXT]linux-2.6.23-032-onl..>2007-09-21 00:25 936  
[TXT]linux-2.6.23-033-fix..>2007-09-21 00:25 1.5K 
[TXT]linux-2.6.23-034-use..>2007-09-21 00:25 1.1K 
[TXT]linux-2.6.23-035-mak..>2007-09-21 00:25 1.3K 
[TXT]linux-2.6.23-036-cle..>2007-09-21 00:25 1.3K 
[TXT]linux-2.6.23-037-mak..>2007-09-21 00:25 1.8K 
[TXT]linux-2.6.23-038-ret..>2007-09-21 00:25 1.0K 
[TXT]linux-2.6.23-039-add..>2007-09-21 00:25 1.8K 
[TXT]linux-2.6.23-040-spl..>2007-09-21 00:25 2.2K 
[TXT]linux-2.6.23-041-rpc..>2007-09-21 00:25 1.3K 
[TXT]linux-2.6.23-042-ker..>2007-09-21 00:25 1.6K 
[TXT]linux-2.6.23-043-ini..>2007-09-25 17:55 1.2K 
[TXT]linux-2.6.23-044-add..>2007-09-25 17:55 1.8K 
[TXT]linux-2.6.23-045-con..>2007-09-21 00:25 13K 
[TXT]linux-2.6.23-046-con..>2007-09-21 00:25 2.0K 
[TXT]linux-2.6.23-047-con..>2007-09-21 00:25 2.6K 
[TXT]linux-2.6.23-048-mov..>2007-10-09 16:09 2.9K 
[TXT]linux-2.6.23-049-exp..>2007-10-09 16:09 2.4K 
[TXT]linux-2.6.23-050-mov..>2007-10-09 16:09 2.3K 
[TXT]linux-2.6.23-051-use..>2007-10-09 16:09 10K 
[TXT]linux-2.6.23-052-use..>2007-10-09 16:09 11K 
[TXT]linux-2.6.23-053-fix..>2007-09-25 17:55 1.4K 
[TXT]linux-2.6.23-054-mar..>2007-10-09 16:09 3.7K 
[TXT]linux-2.6.23-055-add..>2007-10-09 16:09 6.9K 
[TXT]linux-2.6.23-056-pro..>2007-10-09 16:09 4.3K 
[TXT]linux-2.6.23-057-fin..>2007-10-09 16:09 4.6K 
[TXT]linux-2.6.23-058-ren..>2007-10-09 16:09 4.1K 
[TXT]linux-2.6.23-059-rea..>2007-10-09 16:09 3.6K 
[TXT]linux-2.6.23-060-nfs..>2007-10-09 16:09 4.2K 
[TXT]linux-2.6.23-061-nfs..>2007-10-09 16:09 6.3K 
[TXT]linux-2.6.23-062-nfs..>2007-10-09 16:09 1.5K 
[TXT]linux-2.6.23-063-kco..>2007-10-09 16:09 8.7K 
[TXT]linux-2.6.23-064-sup..>2007-10-09 16:09 3.2K 
[TXT]linux-2.6.23-065-rpc..>2007-10-09 16:09 40K 
[TXT]linux-2.6.23-066-rpc..>2007-10-09 16:09 29K 
[TXT]linux-2.6.23-067-rpc..>2007-10-09 16:09 45K 
[TXT]linux-2.6.23-068-add..>2007-10-09 16:09 843  
[TXT]linux-2.6.23-069-ver..>2007-09-25 17:55 1.6K 
[TXT]linux-2.6.23-070-sho..>2007-09-25 17:55 942  
[TXT]linux-2.6.23-071-fix..>2007-09-25 17:55 905  
[TXT]linux-2.6.23-072-don..>2007-09-25 17:55 1.0K 
[TXT]linux-2.6.23-073-eli..>2007-09-25 17:55 3.8K 
[TXT]linux-2.6.23-074-eli..>2007-09-25 17:55 2.1K 
[TXT]linux-2.6.23-075-add..>2007-08-28 22:30 876  
[TXT]linux-2.6.23-076-rep..>2007-09-25 17:55 9.2K 
[TXT]linux-2.6.23-077-sim..>2007-09-25 17:55 5.7K 
[TXT]linux-2.6.23-078-nfs..>2007-09-21 00:25 4.6K 
[TXT]linux-2.6.23-079-opt..>2007-09-21 00:25 1.7K 
[TXT]linux-2.6.23-080-pos..>2007-10-09 16:09 1.0K 
[TXT]linux-2.6.23-081-nfs..>2007-10-09 16:09 1.7K 
[TXT]linux-2.6.23-082-dat..>2007-10-09 16:09 1.6K 
[TXT]linux-2.6.23-083-wcc..>2007-10-09 16:09 965  
[TXT]linux-2.6.23-084-don..>2007-10-09 16:09 3.4K 
[TXT]linux-2.6.23-085-nfs..>2007-10-09 16:09 3.5K 
[TXT]linux-2.6.23-086-no_..>2007-10-09 16:09 1.3K 
[TXT]linux-2.6.23-087-fix..>2007-10-09 16:09 3.9K 
[TXT]linux-2.6.23-088-fix..>2007-10-09 16:09 2.3K 
[TXT]linux-2.6.23-089-fix..>2007-10-09 16:09 1.4K 
[TXT]linux-2.6.23-090-rem..>2007-10-09 16:09 2.1K 
[TXT]linux-2.6.23-091-fak..>2007-10-09 16:09 5.2K 
[TXT]linux-2.6.23-092-fix..>2007-10-09 16:09 1.1K 
[TXT]linux-2.6.23-093-fix..>2007-10-09 16:09 2.1K 
[TXT]linux-2.6.23-094-fix..>2007-10-09 16:09 1.6K 
[TXT]linux-2.6.23-095-nfs..>2007-10-09 16:09 1.6K 
[TXT]linux-2.6.23-096-nfs..>2007-10-09 16:09 1.5K 
[TXT]linux-2.6.23-097-nfs..>2007-10-09 16:09 769  
[TXT]linux-2.6.23-098-nfs..>2007-10-09 16:09 1.0K 
[TXT]linux-2.6.23-099-don..>2007-10-09 16:09 1.4K 
[TXT]linux-2.6.23-100-nfs..>2007-10-09 16:09 1.4K 
[TXT]linux-2.6.23-101-nfs..>2007-10-09 16:09 921  
[TXT]linux-2.6.23-102-nfs..>2007-10-09 16:09 2.1K 
[TXT]linux-2.6.23-103-rem..>2007-10-09 16:09 953  
[TXT]linux-2.6.23-104-fix..>2007-10-09 16:09 1.5K 
[TXT]linux-2.6.23-105-rem..>2007-10-09 16:09 4.0K 
[TXT]linux-2.6.23-106-rem..>2007-10-09 16:09 10K 
[TXT]linux-2.6.23-107-set..>2007-10-09 16:09 1.9K 
[TXT]linux-2.6.23-108-opt..>2007-10-09 16:09 1.4K 
[TXT]linux-2.6.23-109-don..>2007-10-09 16:09 903  
[TXT]linux-2.6.23-110-nfs..>2007-10-09 16:09 852  
[TXT]linux-2.6.23-111-nfs..>2007-10-09 16:09 3.2K 
[TXT]linux-2.6.23-112-nfs..>2007-10-09 16:09 1.1K 
[TXT]linux-2.6.23-113-rem..>2007-10-09 16:09 1.3K 
[TXT]linux-2.6.23-114-don..>2007-10-09 16:09 697  
[TXT]linux-2.6.23-115-be_..>2007-10-09 16:09 2.0K 
[TXT]linux-2.6.23-116-use..>2007-10-09 16:09 796  
[TXT]linux-2.6.23-118-sim..>2007-10-09 16:09 624  
[TXT]linux-2.6.23-119-get..>2007-10-09 16:09 2.5K 
[TXT]linux-2.6.23-120-add..>2007-10-09 16:09 1.2K 
[TXT]linux-2.6.23-121-fix..>2007-10-09 16:09 1.3K 
[TXT]linux-2.6.23-122-use..>2007-10-09 16:09 1.5K 
[TXT]linux-2.6.23-123-mak..>2007-10-09 16:09 1.1K 
[TXT]linux-2.6.23-124-cle..>2007-10-09 16:09 735  
[TXT]linux-2.6.23-125-fix..>2007-10-09 16:09 1.1K 
[TXT]linux-2.6.23-126-don..>2007-10-09 16:09 807  
[TXT]linux-2.6.23-127-don..>2007-10-09 16:09 1.0K 
[TXT]linux-2.6.23-128-nfs..>2007-10-09 16:09 1.6K 
[TXT]linux-2.6.23-129-nfs..>2007-10-09 16:09 2.2K 
[TXT]linux-2.6.23-130-nfs..>2007-10-09 16:09 3.6K 
[TXT]linux-2.6.23-131-add..>2007-10-09 16:09 4.0K 
[TXT]linux-2.6.23-132-fix..>2007-10-21 18:26 1.3K 
[TXT]linux-2.6.23-133-fix..>2007-10-21 18:26 2.3K 
[TXT]linux-2.6.23-134-fix..>2007-10-21 18:26 9.4K 
[TXT]linux-2.6.23-135-wai..>2007-10-21 18:26 6.8K 
[TXT]linux-2.6.23-136-fix..>2007-10-21 18:26 707  
[TXT]linux-2.6.23-137-fix..>2007-10-21 18:26 796  
[TXT]linux-2.6.23-138-fix..>2007-10-21 18:26 922  
[TXT]linux-2.6.23-139-ens..>2007-10-21 18:26 802  
[TXT]linux-2.6.23-140-fix..>2007-10-21 18:26 752  
[TXT]linux-2.6.23-NFS_ALL..>2007-10-21 18:26 323K 
[   ]series 2007-10-21 18:26 8.0K 

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