NFS client patches for Linux 2.6.26-rc5

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

linux-2.6.26-016-cleanup_nfs_update_request.dif:

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

Date: Fri, 13 Jun 2008 12:12:32 -0400

NFS: Clean up nfs_update_request()

Simplify the loop in nfs_update_request by moving into a separate function the code that attempts to update an existing cached NFS write.

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

linux-2.6.26-017-defer_commit.dif:

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

Date: Fri, 13 Jun 2008 13:25:22 -0400

NFS: Allow redirtying of a completed unstable write.

Currently, if an unstable write completes, we cannot redirty the page in order to reflect a new change in the page data until after we've sent a COMMIT request.

This patch allows a page rewrite to proceed without the unnecessary COMMIT step, putting it immediately back onto the dirty page list, undoing the VM unstable write accounting, and removing the NFS_PAGE_TAG_COMMIT tag from the NFS radix tree.

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

linux-2.6.26-018-fix_nfs4_fs_type_undeclared.dif:

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

Date: Tue, 17 Jun 2008 16:12:00 -0400

NFS: Fix a dependency on CONFIG_NFS_V4 in nfs_remount

Fix the 'nfs4_fs_type' undeclared error in nfs_remount when compiling sans NFSv4...

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Cc: Jeff Layton <jlayton@redhat.com>

linux-2.6.26-019-use_common_device_name_parsing_logic_for_nfsv4_and_nfsv2_v3.dif:

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

Date: Tue, 17 Jun 2008 14:17:19 -0400

NFS: Use common device name parsing logic for NFSv4 and NFSv2/v3

To support passing a raw IPv6 address as a server hostname, we need to expand the logic that handles splitting the passed-in device name into a server hostname and export path

Start by pulling device name parsing out of the mount option validation functions and into separate helper functions.

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

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

linux-2.6.26-020-support_raw_ipv6_address_hostnames_during_nfs_mount_operation.dif:

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

Date: Tue, 17 Jun 2008 14:17:27 -0400

NFS: Support raw IPv6 address hostnames during NFS mount operation

Traditionally the mount command has looked for a ":" to separate the server's hostname from the export path in the mounted on device name, like this:

mount server:/export /mounted/on/dir

The server's hostname is "server" and the export path is "/export".

You can also substitute a specific IPv4 network address for the server hostname, like this:

mount 192.168.0.55:/export /mounted/on/dir

Raw IPv6 addresses present a problem, however, because they look something like this:

fe80::200:5aff:fe00:30b

Note the use of colons.

To get around the presence of colons, copy the Solaris convention used for mounting IPv6 servers by address: wrap a raw IPv6 address with square brackets.

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

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

linux-2.6.26-021-add_string_length_argument_to_nfs_parse_server_address.dif:

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

Date: Tue, 17 Jun 2008 14:17:35 -0400

NFS: Add string length argument to nfs_parse_server_address

To make nfs_parse_server_address() more generally useful, allow it to accept input strings that are not terminated with '\0'.

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

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

linux-2.6.26-022-handle_interface_identifiers_in_incoming_ipv6_addresses.dif:

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

Date: Tue, 17 Jun 2008 14:17:43 -0400

NFS: handle interface identifiers in incoming IPv6 addresses

Add support in the kernel NFS client's address parser for interface identifiers.

IPv6 link-local addresses require an additional "interface identifier", which is a network device name or an integer that indexes the array of local network interfaces. They are suffixed to the address with a '%'. For example:

fe80::215:c5ff:fe3b:e1b2%2

indicates an interface index of 2. Or

fe80::215:c5ff:fe3b:e1b2%eth0

indicates that requests should be routed through the eth0 device. Without the interface ID, link-local addresses are not usable for NFS.

Both the kernel NFS client mount option parser and the mount.nfs command can take either form. The mount.nfs command always passes the address through getnameinfo(3), which usually re-writes interface indices as device names.

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

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

linux-2.6.26-023-dont_parse_ipv6_if_no_config_ipv6.dif:

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

Date: Wed, 18 Jun 2008 16:04:22 -0400

NFS: Don't allow IPv6 addresses if CONFIG_IPv6 isn't set

Fixes a compile failure in fs/nfs/super.c

Also fix the compiler warnings: fs/nfs/super.c:721: warning: field width should have type ‘int’, but argument 2 has type ‘size_t’ fs/nfs/super.c:776: warning: field width should have type ‘int’, but argument 2 has type ‘size_t’ fs/nfs/super.c:809:3: warning: returning void-valued expression fs/nfs/super.c:811:3: warning: returning void-valued expression

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

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.26-016-cle..>2008-06-18 22:38 4.9K 
[TXT]linux-2.6.26-017-def..>2008-06-18 22:38 6.4K 
[TXT]linux-2.6.26-018-fix..>2008-06-18 22:38 1.4K 
[TXT]linux-2.6.26-019-use..>2008-06-18 22:38 5.1K 
[TXT]linux-2.6.26-020-sup..>2008-06-18 22:38 3.8K 
[TXT]linux-2.6.26-021-add..>2008-06-18 22:38 4.3K 
[TXT]linux-2.6.26-022-han..>2008-06-18 22:38 3.2K 
[TXT]linux-2.6.26-023-don..>2008-06-18 22:38 2.9K 
[   ]series 2008-06-18 22:38 580  

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