NFS client patches for Linux 2.6.23-rc4

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

linux-2.6.23-001-fix_cancel_work_hang.dif:

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

Date: Mon, 27 Aug 2007 09:14:56 -0400

NFS: Fix use of cancel_delayed_work_sync in nfs_release_automount_timer

Doh! We can't use cancel_delayed_work_sync because we may have been called from an unmount that was being performed by nfs_automount_task.

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

linux-2.6.23-002-fix_a_typo_in_nfs4_do_open_reclaim.dif:

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

Date: Mon, 27 Aug 2007 09:57:46 -0400

NFSv4: Fix a typo in _nfs4_do_open_reclaim

This should fix the following Oops reported by Jeff Garzik:

kernel BUG at fs/nfs/nfs4xdr.c:1040! invalid opcode: 0000 [1] SMP CPU 0 Modules linked in: nfs lockd sunrpc af_packet ipv6 cpufreq_ondemand acpi_cpufreq battery floppy nvram sg snd_hda_intel ata_generic snd_pcm_oss snd_mixer_oss snd_pcm i2c_i801 snd_page_alloc e1000 firewire_ohci ata_piix i2c_core sr_mod cdrom sata_sil ahci libata sd_mod scsi_mod ext3 jbd ehci_hcd uhci_hcd Pid: 16353, comm: 10.10.10.1-recl Not tainted 2.6.23-rc3 #1 RIP: 0010:[<ffffffff88240980>] [<ffffffff88240980>] :nfs:encode_open+0x1c0/0x330 RSP: 0018:ffff8100467c5c60 EFLAGS: 00010202 RAX: ffff81000f89b8b8 RBX: 00000000697a6f6d RCX: ffff81000f89b8b8 RDX: 0000000000000004 RSI: 0000000000000004 RDI: ffff8100467c5c80 RBP: ffff8100467c5c80 R08: ffff81000f89bc30 R09: ffff81000f89b83f R10: 0000000000000001 R11: ffffffff881e79e0 R12: ffff81003cbd1808 R13: ffff81000f89b860 R14: ffff81005fc984e0 R15: ffffffff88240af0 FS: 0000000000000000(0000) GS:ffffffff8052a000(0000) knlGS:0000000000000000 CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b CR2: 00002adb9e51a030 CR3: 000000007ea7e000 CR4: 00000000000006e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Process 10.10.10.1-recl (pid: 16353, threadinfo ffff8100467c4000, task ffff8100038ce780) Stack: ffff81004aeb6a40 ffff81003cbd1808 ffff81003cbd1808 ffffffff88240b5d ffff81000f89b8bc ffff81005fc984e8 ffff81000f89bc30 ffff81005fc984e8 0000000300000000 0000000000000000 0000000000000000 ffff81003cbd1800 Call Trace: [<ffffffff88240b5d>] :nfs:nfs4_xdr_enc_open_noattr+0x6d/0x90 [<ffffffff881e74b7>] :sunrpc:rpcauth_wrap_req+0x97/0xf0 [<ffffffff88240af0>] :nfs:nfs4_xdr_enc_open_noattr+0x0/0x90 [<ffffffff881df57a>] :sunrpc:call_transmit+0x18a/0x290 [<ffffffff881e5e7b>] :sunrpc:__rpc_execute+0x6b/0x290 [<ffffffff881dff76>] :sunrpc:rpc_do_run_task+0x76/0xd0 [<ffffffff882373f6>] :nfs:_nfs4_proc_open+0x76/0x230 [<ffffffff88237a2e>] :nfs:nfs4_open_recover_helper+0x5e/0xc0 [<ffffffff88237b74>] :nfs:nfs4_open_recover+0xe4/0x120 [<ffffffff88238e14>] :nfs:nfs4_open_reclaim+0xa4/0xf0 [<ffffffff882413c5>] :nfs:nfs4_reclaim_open_state+0x55/0x1b0 [<ffffffff882417ea>] :nfs:reclaimer+0x2ca/0x390 [<ffffffff88241520>] :nfs:reclaimer+0x0/0x390 [<ffffffff8024e59b>] kthread+0x4b/0x80 [<ffffffff8020cad8>] child_rip+0xa/0x12 [<ffffffff8024e550>] kthread+0x0/0x80 [<ffffffff8020cace>] child_rip+0x0/0x12

Code: 0f 0b eb fe 48 89 ef c7 00 00 00 00 02 be 08 00 00 00 e8 79 RIP [<ffffffff88240980>] :nfs:encode_open+0x1c0/0x330 RSP <ffff8100467c5c60>

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

linux-2.6.23-003-fix_nfs4_atomic_open.dif:

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

Date: Mon, 27 Aug 2007 11:33:00 -0400

NFSv4: Ensure that we pass the correct dentry to nfs4_intent_set_file

This patch fixes an Oops that was reported by Gabriel Barazer.

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

linux-2.6.23-004-mount_option_parser_chokes_on_proto.dif:

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

Date: Wed, 29 Aug 2007 17:58:57 -0400

NFS: mount option parser chokes on proto=

The new text-based NFS mount option parsing logic doesn't recognize any valid transport protocols due to a silly mistake in the protocol token matching logic. This prevents basic mount requests such as:

mount.nfs server:/export /mnt -o proto=tcp

from working with the new text-based NFS mount API.

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

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

linux-2.6.23-005-return_real_error_code_from_mount.dif:

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

Date: Wed, 29 Aug 2007 17:58:59 -0400

NFS: Return a real error code from mount(2)

Don't filter the return code from the in-kernel rpcbind or NFS mount clients. Return the real error code so that callers of the new NFS text-based mount API can apply a useful retry strategy.

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

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

linux-2.6.23-006-mount_off_by_one_length_error.dif:

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

Date: Wed, 29 Aug 2007 17:59:01 -0400

NFS: Off-by-one length error in string handling

The hostname was getting truncated in the new text-based NFS mount API.

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

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

linux-2.6.23-007-return_enametoolong_in_mount.dif:

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

Date: Wed, 29 Aug 2007 17:59:03 -0400

NFS: change NFS mount error return when

According to the mount(2) man page, the proper error return code for the mount(2) system call when the special device name or the mounted-on directory name is too long is ENAMETOOLONG.

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

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

linux-2.6.23-008-fix_nfs_wb_page_priority.dif:

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

Date: Tue, 28 Aug 2007 10:29:36 -0400

NFS: Fix a write request leak in nfs_invalidate_page()

Ryusuke Konishi says:

The recent truncate_complete_page() clears the dirty flag from a page before calling a_ops->invalidatepage(), ^^^^^^ static void truncate_complete_page(struct address_space *mapping, struct page *page) { ... cancel_dirty_page(page, PAGE_CACHE_SIZE); <--- Inserted here at kernel 2.6.20

if (PagePrivate(page)) do_invalidatepage(page, 0); ---> will call a_ops->invalidatepage() ... }

and this is disturbing nfs_wb_page_priority() from calling nfs_writepage_locked() that is expected to handle the pending request (=nfs_page) associated with the page.

int nfs_wb_page_priority(struct inode *inode, struct page *page, int how) { ... if (clear_page_dirty_for_io(page)) { ret = nfs_writepage_locked(page, &wbc); if (ret < 0) goto out; } ... }

Since truncate_complete_page() will get rid of the page after a_ops->invalidatepage() returns, the request (=nfs_page) associated with the page becomes a garbage in nfs_inode->nfs_page_tree. ------------------------

Fix this by ensuring that nfs_wb_page_priority() recognises that it may also need to clear out non-dirty pages that have an nfs_page associated with them.

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

linux-2.6.23-009-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-010-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-011-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-012-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-013-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-014-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-015-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-016-fs_locks_remove_shadowed_variable.dif:

From: \"J. Bruce Fields\" <bfields@fieldses.org>

Date: Thu, 5 Jul 2007 13:55:09 -0400

locks: kill redundant local variable

There's no need for another variable local to this loop; we can use the variable (of the same name!) already declared at the top of the function, and not used till later (at which point it's initialized, so this is safe).

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

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

linux-2.6.23-017-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-018-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-019-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-020-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-021-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-022-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-023-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-024-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-025-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-026-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-027-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-028-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-029-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-030-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-031-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-032-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-033-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-034-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-035-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-036-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-037-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-038-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-039-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-040-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-041-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-042-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-043-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-044-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-NFS_ALL.dif:

All of the above

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.23-001-fix..>2007-08-28 22:30 847  
[TXT]linux-2.6.23-002-fix..>2007-08-28 22:30 3.4K 
[TXT]linux-2.6.23-003-fix..>2007-08-28 22:30 773  
[TXT]linux-2.6.23-004-mou..>2007-08-30 14:18 1.5K 
[TXT]linux-2.6.23-005-ret..>2007-08-30 14:18 882  
[TXT]linux-2.6.23-006-mou..>2007-08-30 14:18 822  
[TXT]linux-2.6.23-007-ret..>2007-08-30 14:18 1.7K 
[TXT]linux-2.6.23-008-fix..>2007-08-28 22:30 4.1K 
[TXT]linux-2.6.23-009-add..>2007-08-28 22:30 2.3K 
[TXT]linux-2.6.23-010-cle..>2007-08-28 22:30 6.0K 
[TXT]linux-2.6.23-011-cle..>2007-08-28 22:30 2.9K 
[TXT]linux-2.6.23-012-rem..>2007-07-27 14:24 777  
[TXT]linux-2.6.23-013-add..>2007-08-28 22:30 3.5K 
[TXT]linux-2.6.23-014-opt..>2007-08-28 22:30 1.8K 
[TXT]linux-2.6.23-015-osy..>2007-08-28 22:30 5.7K 
[TXT]linux-2.6.23-016-fs_..>2007-08-07 20:13 967  
[TXT]linux-2.6.23-017-con..>2007-08-28 22:30 2.1K 
[TXT]linux-2.6.23-018-nfs..>2007-08-28 22:30 4.5K 
[TXT]linux-2.6.23-019-nfs..>2007-08-28 22:30 4.8K 
[TXT]linux-2.6.23-020-nfs..>2007-08-28 22:30 675  
[TXT]linux-2.6.23-021-sho..>2007-08-30 14:18 1.2K 
[TXT]linux-2.6.23-022-fix..>2007-08-28 22:30 876  
[TXT]linux-2.6.23-023-fix..>2007-08-28 22:30 848  
[TXT]linux-2.6.23-024-use..>2007-08-28 22:30 1.2K 
[TXT]linux-2.6.23-025-fre..>2007-08-28 22:30 1.6K 
[TXT]linux-2.6.23-026-add..>2007-08-28 22:30 1.7K 
[TXT]linux-2.6.23-027-ren..>2007-08-28 22:30 1.6K 
[TXT]linux-2.6.23-028-add..>2007-08-28 22:30 2.1K 
[TXT]linux-2.6.23-029-add..>2007-08-28 22:30 4.0K 
[TXT]linux-2.6.23-030-int..>2007-08-28 22:30 1.3K 
[TXT]linux-2.6.23-031-ren..>2007-08-28 22:30 1.7K 
[TXT]linux-2.6.23-032-cre..>2007-08-28 22:30 1.8K 
[TXT]linux-2.6.23-033-ref..>2007-08-28 22:30 5.5K 
[TXT]linux-2.6.23-034-ren..>2007-08-28 22:30 2.5K 
[TXT]linux-2.6.23-035-cre..>2007-08-28 22:30 3.7K 
[TXT]linux-2.6.23-036-add..>2007-08-28 22:30 4.3K 
[TXT]linux-2.6.23-037-add..>2007-08-28 22:30 2.5K 
[TXT]linux-2.6.23-038-spl..>2007-08-28 22:30 3.0K 
[TXT]linux-2.6.23-039-add..>2007-08-28 22:30 2.0K 
[TXT]linux-2.6.23-040-fix..>2007-08-28 22:30 2.5K 
[TXT]linux-2.6.23-041-add..>2007-08-28 22:30 876  
[TXT]linux-2.6.23-042-rep..>2007-08-28 22:30 9.2K 
[TXT]linux-2.6.23-043-sim..>2007-08-28 22:30 5.7K 
[TXT]linux-2.6.23-044-nfs..>2007-08-30 14:18 4.6K 
[TXT]linux-2.6.23-NFS_ALL..>2007-08-30 14:20 71K 
[   ]series 2007-08-30 14:18 2.6K 

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