NFS: Define and create server-level objects
authorDavid Howells <dhowells@redhat.com>
Fri, 3 Apr 2009 15:42:42 +0000 (16:42 +0100)
committerDavid Howells <dhowells@redhat.com>
Fri, 3 Apr 2009 15:42:42 +0000 (16:42 +0100)
commit147272813e043fb44bd112527951da70c1e663de
tree4b67df2bb809c7b661e7c6f4b1692ab8af41a996
parent8ec442ae4c6577ed181682e534d4eef524e30b3c
NFS: Define and create server-level objects

Define and create server-level cache index objects (as managed by nfs_client
structs).

Each server object is created in the NFS top-level index object and is itself
an index into which superblock-level objects are inserted.

Ideally there would be one superblock-level object per server, and the former
would be folded into the latter; however, since the "nosharecache" option
exists this isn't possible.

The server object key is a sequence consisting of:

 (1) NFS version

 (2) Server address family (eg: AF_INET or AF_INET6)

 (3) Server port.

 (4) Server IP address.

The key blob is of variable length, depending on the length of (4).

The server object is given no coherency data to carry in the auxiliary data
permitted by the cache.

Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Steve Dickson <steved@redhat.com>
Acked-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Acked-by: Al Viro <viro@zeniv.linux.org.uk>
Tested-by: Daire Byrne <Daire.Byrne@framestore.com>
fs/nfs/Makefile
fs/nfs/client.c
fs/nfs/fscache-index.c
fs/nfs/fscache.c [new file with mode: 0644]
fs/nfs/fscache.h
include/linux/nfs_fs_sb.h