linux/fs/nfs
David Howells b797cac748 NFS: Add mount options to enable local caching on NFS
Add NFS mount options to allow the local caching support to be enabled.

The attached patch makes it possible for the NFS filesystem to be told to make
use of the network filesystem local caching service (FS-Cache).

To be able to use this, a recent nfsutils package is required.

There are three variant NFS mount options that can be added to a mount command
to control caching for a mount.  Only the last one specified takes effect:

 (*) Adding "fsc" will request caching.

 (*) Adding "fsc=<string>" will request caching and also specify a uniquifier.

 (*) Adding "nofsc" will disable caching.

For example:

	mount warthog:/ /a -o fsc

The cache of a particular superblock (NFS FSID) will be shared between all
mounts of that volume, provided they have the same connection parameters and
are not marked 'nosharecache'.

Where it is otherwise impossible to distinguish superblocks because all the
parameters are identical, but the 'nosharecache' option is supplied, a
uniquifying string must be supplied, else only the first mount will be
permitted to use the cache.

If there's a key collision, then the second mount will disable caching and give
a warning into the kernel log.

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>
2009-04-03 16:42:48 +01:00
..
callback_proc.c
callback_xdr.c
callback.c
callback.h
client.c NFS: Add mount options to enable local caching on NFS 2009-04-03 16:42:48 +01:00
delegation.c
delegation.h
dir.c
direct.c
file.c NFS: FS-Cache page management 2009-04-03 16:42:44 +01:00
fscache-index.c NFS: Add read context retention for FS-Cache to call back with 2009-04-03 16:42:44 +01:00
fscache.c NFS: Store pages from an NFS inode into a local cache 2009-04-03 16:42:45 +01:00
fscache.h NFS: Display local caching state 2009-04-03 16:42:47 +01:00
getroot.c
idmap.c
inode.c NFS: Use local disk inode cache 2009-04-03 16:42:43 +01:00
internal.h NFS: Add mount options to enable local caching on NFS 2009-04-03 16:42:48 +01:00
iostat.h NFS: Add some new I/O counters for FS-Cache doing things for NFS 2009-04-03 16:42:43 +01:00
Kconfig NFS: Permit local filesystem caching to be enabled for NFS 2009-04-03 16:42:42 +01:00
Makefile NFS: Define and create server-level objects 2009-04-03 16:42:42 +01:00
mount_clnt.c
namespace.c
nfs2xdr.c
nfs3acl.c
nfs3proc.c
nfs3xdr.c
nfs4_fs.h
nfs4namespace.c
nfs4proc.c
nfs4renewd.c
nfs4state.c
nfs4xdr.c
nfsroot.c
pagelist.c
proc.c
read.c NFS: Store pages from an NFS inode into a local cache 2009-04-03 16:42:45 +01:00
super.c NFS: Add mount options to enable local caching on NFS 2009-04-03 16:42:48 +01:00
symlink.c
sysctl.c
unlink.c
write.c