NFS client patches for Linux 2.6.11

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

linux-2.6.11-01-cleanup_headers.dif:

NFS: Header file cleanup...

- Move NFSv4 state definitions into a private header file.

- Clean up gunk in nfs_fs.h

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

linux-2.6.11-02-nfs4acl1.dif:

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

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

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

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

linux-2.6.11-03-nfs4acl2.dif:

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

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

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

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

linux-2.6.11-04-nfs4acl3.dif:

NFSv4: fix fattr size calculations

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

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

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

linux-2.6.11-05-nfs4acl4.dif:

NFSv4: Client-side xdr for reading NFSv4 acls

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

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

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

linux-2.6.11-06-nfs4acl5.dif:

NFSv4: ACL support for the NFSv4 client: read

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

This patch provides only the read support.

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

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

linux-2.6.11-07-nfs4acl6.dif:

NFSv4: Client-side xdr for writing NFSv4 acls

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

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

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

linux-2.6.11-08-nfs4acl7.dif:

NFSv4: ACL support for the NFSv4 client: write

Client-side write support for NFSv4 ACLs.

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

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

linux-2.6.11-09-nfs4acl8.dif:

NFSv4: client-side caching NFSv4 ACLs

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

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

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

linux-2.6.11-10-rpc_badprog_error.dif:

RPC: Return -ENOSYS for RPC programs that are unavailable The issuer of an RPC call should be able to tell the difference between an I/O error and program unavailable / program version unavailable / procedure unavailable. Return -ENOSYS for unavailable RPC programs, and -EOPNOTSUPP for unavailable procedures.

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

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

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

linux-2.6.11-11-rpc_change_program.dif:

RPC: Allow multiple NFS client programs to share the same transport Allow a clone of an RPC client (created with rpc_clone_client()) to change to another program. This allows the NFS and NFSACL programs to share the same transport.

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

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

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

linux-2.6.11-12-lazy_rpc_xdrbuf_alloc.dif:

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

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

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

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

linux-2.6.11-13-read_write_xdr_buf.dif:

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

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

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

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

linux-2.6.11-14-authgss_principal.dif:

RPC: Save the name of the principal in the gss_cred

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

linux-2.6.11-15-authgss_keyrings.dif:

RPC: Support the KEYRING model for AUTH_GSS credentials

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

linux-2.6.11-16-fsid.dif:

NFS: Store the file system "fsid" value in the NFS super block.

This should enable us to detect if we are crossing a mountpoint in the case where the server is exporting "nohide" mounts.

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

linux-2.6.11-17-nfs_clone_fs.dif:

VFS: Add GPL_EXPORTED function vfs_kern_mount()

do_kern_mount() does not allow the kernel to use private mount interfaces without exposing the same interfaces to userland. The problem is that the filesystem is referenced by name, thus meaning that it and its mount interface must be registered in the global filesystem list.

vfs_kern_mount() passes the struct file_system_type as an explicit parameter in order to overcome this limitation.

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

linux-2.6.11-18-nfs_clone_fs2.dif:

NFS: Ensure the client submounts, when it crosses a server mountpoint.

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

linux-2.6.11-19-expire_automounts.dif:

NFS: Add timeout to submounts

Make automounted partitions expire using the mark_mounts_for_expiry() function. The timeout is controlled via a sysctl.

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

linux-2.6.11-20-recover_filehandles.dif:

NFS: Attempt to recover when migrating to a replicated filesystem.

If the replica does not preserve filehandles and/or inode numbers, then we can try to walk the path in order to recover. This is definitely a case of walking on eggshells, though.

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

linux-2.6.11-21-switch_xprt.dif:

RPC: Support for failover to a new transport struct

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

linux-2.6.11-22-enter_page.dif:

RPC: Allow struc xdr_stream to read the page section of an xdr_buf

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

linux-2.6.11-23-fs_locations.dif:

NFSv4: Implement the fs_locations function call

NFSv4 allows for the fact that filesystems may be replicated across several servers or that they may be migrated to a backup server in case of failure of the primary server. fs_locations is an NFSv4 operation for retrieving information about the location of migrated and/or replicated filesystems.

Based on an initial implementation by Jiaying Zhang <jiayingz@citi.umich.edu>

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

linux-2.6.11-24-vfs_fix_permission_intent.dif:

VFS: Make link_path_walk set LOOKUP_CONTINUE before calling permission().

This will allow nfs_permission() to perform additional optimizations when walking the path, by folding the ACCESS(MAY_EXEC) call on the directory into the lookup revalidation.

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

linux-2.6.11-NFS_ALL.dif:

All of the above

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.11-01-clea..>2005-03-09 23:15 25K 
[TXT]linux-2.6.11-02-nfs4..>2005-03-09 23:15 3.2K 
[TXT]linux-2.6.11-03-nfs4..>2005-03-09 23:15 4.1K 
[TXT]linux-2.6.11-04-nfs4..>2005-03-09 00:13 2.8K 
[TXT]linux-2.6.11-05-nfs4..>2005-03-09 23:15 4.9K 
[TXT]linux-2.6.11-06-nfs4..>2005-03-09 23:20 4.2K 
[TXT]linux-2.6.11-07-nfs4..>2005-03-10 04:57 4.1K 
[TXT]linux-2.6.11-08-nfs4..>2005-03-09 23:20 2.7K 
[TXT]linux-2.6.11-09-nfs4..>2005-03-13 19:14 7.6K 
[TXT]linux-2.6.11-10-rpc_..>2005-03-10 00:43 2.9K 
[TXT]linux-2.6.11-11-rpc_..>2005-03-09 00:13 4.3K 
[TXT]linux-2.6.11-12-lazy..>2005-03-10 00:33 4.9K 
[TXT]linux-2.6.11-13-read..>2005-03-10 04:57 9.4K 
[TXT]linux-2.6.11-14-auth..>2005-03-10 18:48 1.9K 
[TXT]linux-2.6.11-15-auth..>2005-03-11 02:06 12K 
[TXT]linux-2.6.11-16-fsid..>2005-03-10 04:58 6.4K 
[TXT]linux-2.6.11-17-nfs_..>2005-03-09 00:13 2.7K 
[TXT]linux-2.6.11-18-nfs_..>2005-03-10 21:25 16K 
[TXT]linux-2.6.11-19-expi..>2005-03-10 21:26 5.2K 
[TXT]linux-2.6.11-20-reco..>2005-03-09 23:24 7.0K 
[TXT]linux-2.6.11-21-swit..>2005-03-09 00:13 9.1K 
[TXT]linux-2.6.11-22-ente..>2005-03-10 04:59 2.5K 
[TXT]linux-2.6.11-23-fs_l..>2005-03-10 04:59 8.9K 
[TXT]linux-2.6.11-24-vfs_..>2005-03-15 15:53 1.0K 
[TXT]linux-2.6.11-NFS_ALL..>2005-03-11 02:24 120K 

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