Blob Blame History Raw
--- nfs-utils-1.0.9/utils/mount/nfs4mount.c.orig	2006-10-16 08:32:53.789617000 -0400
+++ nfs-utils-1.0.9/utils/mount/nfs4mount.c	2006-10-16 08:33:53.098133000 -0400
@@ -201,7 +201,7 @@ int nfs4mount(const char *spec, const ch
 	char *s;
 	int val;
 	int bg, soft, intr;
-	int nocto, noac;
+	int nocto, noac, fscache;
 	int retry;
 	int retval;
 	time_t timeout, t;
@@ -252,6 +252,7 @@ int nfs4mount(const char *spec, const ch
 	intr = NFS4_MOUNT_INTR;
 	nocto = 0;
 	noac = 0;
+	fscache = 0;
 	retry = 10000;		/* 10000 minutes ~ 1 week */
 
 	/*
@@ -332,6 +333,8 @@ int nfs4mount(const char *spec, const ch
 				soft = !val;
 			else if (!strcmp(opt, "intr"))
 				intr = val;
+			else if (!strcmp(opt, "fsc"))
+				fscache = val;
 			else if (!strcmp(opt, "cto"))
 				nocto = !val;
 			else if (!strcmp(opt, "ac"))
@@ -347,7 +350,8 @@ int nfs4mount(const char *spec, const ch
 	data.flags = (soft ? NFS4_MOUNT_SOFT : 0)
 		| (intr ? NFS4_MOUNT_INTR : 0)
 		| (nocto ? NFS4_MOUNT_NOCTO : 0)
-		| (noac ? NFS4_MOUNT_NOAC : 0);
+		| (noac ? NFS4_MOUNT_NOAC : 0)
+		| (fscache ? NFS4_MOUNT_FSCACHE : 0);
 
 	/*
 	 * Give a warning if the rpc.idmapd daemon is not running
--- nfs-utils-1.0.9/utils/mount/nfs_mount.h.orig	2006-10-16 08:32:53.763643000 -0400
+++ nfs-utils-1.0.9/utils/mount/nfs_mount.h	2006-10-16 08:33:53.113133000 -0400
@@ -63,6 +63,7 @@ struct nfs_mount_data {
 #define NFS_MOUNT_BROKEN_SUID	0x0400	/* 4 */
 #define NFS_MOUNT_NOACL     0x0800  /* 4 */
 #define NFS_MOUNT_SECFLAVOUR	0x2000	/* 5 */
+#define NFS_MOUNT_FSCACHE	0x4000	/* 6 */
 
 /* security pseudoflavors */
 
--- nfs-utils-1.0.9/utils/mount/nfsmount.c.orig	2006-10-16 08:32:53.853553000 -0400
+++ nfs-utils-1.0.9/utils/mount/nfsmount.c	2006-10-16 08:33:53.128133000 -0400
@@ -695,6 +695,10 @@ parse_options(char *old_opts, struct nfs
 				data->flags &= ~NFS_MOUNT_SOFT;
 				if (val)
 					data->flags |= NFS_MOUNT_SOFT;
+			} else if (!strcmp(opt, "fsc")) {
+				data->flags &= ~NFS_MOUNT_FSCACHE;
+				if (val)
+					data->flags |= NFS_MOUNT_FSCACHE;
 			} else if (!strcmp(opt, "hard")) {
 				data->flags &= ~NFS_MOUNT_SOFT;
 				if (!val)
--- nfs-utils-1.0.9/utils/mount/nfs4_mount.h.orig	2006-07-07 20:04:32.000000000 -0400
+++ nfs-utils-1.0.9/utils/mount/nfs4_mount.h	2006-10-16 08:33:53.143133000 -0400
@@ -65,6 +65,7 @@ struct nfs4_mount_data {
 #define NFS4_MOUNT_NOCTO	0x0010	/* 1 */
 #define NFS4_MOUNT_NOAC		0x0020	/* 1 */
 #define NFS4_MOUNT_STRICTLOCK	0x1000	/* 1 */
+#define NFS4_MOUNT_FSCACHE	0x4000	/* 1 */
 #define NFS4_MOUNT_FLAGMASK	0xFFFF
 
 /* pseudoflavors: */
--- nfs-utils-1.0.9/utils/mount/nfs.man.orig	2006-10-16 08:32:53.825581000 -0400
+++ nfs-utils-1.0.9/utils/mount/nfs.man	2006-10-16 08:36:39.503163000 -0400
@@ -272,6 +272,10 @@ default UDP protocol.  Many NFS servers 
 .I udp
 Mount the NFS filesystem using the UDP protocol.  This
 is the default.
+.TP 1.5i
+.I fsc
+Enable the use of persistent caching to the local disk using
+the FS-Cache facility for the given mount point.
 .P
 All of the non-value options have corresponding nooption forms.
 For example, nointr means don't allow file operations to be
@@ -428,6 +432,10 @@ This extracts a
 server performance penalty but it allows two different NFS clients
 to get reasonable good results when both clients are actively
 writing to common filesystem on the server.
+.TP 1.5i
+.I fsc
+Enable the use of persistent caching to the local disk using
+the FS-Cache facility for the given mount point.
 .P
 All of the non-value options have corresponding nooption forms.
 For example, nointr means don't allow file operations to be