svn commit: r234076 - in projects/nfsv4.1-client/sys: fs/nfs
fs/nfsclient nfsclient
Rick Macklem
rmacklem at FreeBSD.org
Tue Apr 10 01:26:59 UTC 2012
Author: rmacklem
Date: Tue Apr 10 01:26:58 2012
New Revision: 234076
URL: http://svn.freebsd.org/changeset/base/234076
Log:
Add a "pnfs" mount option, so that pnfs support won't be
enabled by default. This is needed because pnfs support will
be experimental for quite a while. Or, it may crash when
enabled, if you prefer.
Modified:
projects/nfsv4.1-client/sys/fs/nfs/nfsport.h
projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c
projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clvfsops.c
projects/nfsv4.1-client/sys/nfsclient/nfsargs.h
Modified: projects/nfsv4.1-client/sys/fs/nfs/nfsport.h
==============================================================================
--- projects/nfsv4.1-client/sys/fs/nfs/nfsport.h Tue Apr 10 01:20:32 2012 (r234075)
+++ projects/nfsv4.1-client/sys/fs/nfs/nfsport.h Tue Apr 10 01:26:58 2012 (r234076)
@@ -857,6 +857,7 @@ void newnfs_realign(struct mbuf **);
#define NFSHASPRIVACY(n) ((n)->nm_flag & NFSMNT_PRIVACY)
#define NFSSETWRITEVERF(n) ((n)->nm_state |= NFSSTA_HASWRITEVERF)
#define NFSSETHASSETFSID(n) ((n)->nm_state |= NFSSTA_HASSETFSID)
+#define NFSHASPNFSOPT(n) ((n)->nm_flag & NFSMNT_PNFS)
#define NFSHASPNFS(n) ((n)->nm_state & NFSSTA_PNFS)
/*
Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c
==============================================================================
--- projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c Tue Apr 10 01:20:32 2012 (r234075)
+++ projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c Tue Apr 10 01:26:58 2012 (r234076)
@@ -4421,7 +4421,8 @@ printf("servlen=%d\n", len);
fxdr_unsigned(uint32_t, *tl++);
v41flags = fxdr_unsigned(uint32_t, *tl);
printf("v41fl=0x%x\n", v41flags);
- if ((v41flags & NFSV4EXCH_USEPNFSMDS) != 0) {
+ if ((v41flags & NFSV4EXCH_USEPNFSMDS) != 0 &&
+ NFSHASPNFSOPT(nmp)) {
NFSLOCKMNT(nmp);
nmp->nm_state |= NFSSTA_PNFS;
NFSUNLOCKMNT(nmp);
Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clvfsops.c
==============================================================================
--- projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clvfsops.c Tue Apr 10 01:20:32 2012 (r234075)
+++ projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clvfsops.c Tue Apr 10 01:26:58 2012 (r234076)
@@ -717,8 +717,8 @@ static const char *nfs_opts[] = { "from"
"readdirsize", "soft", "hard", "mntudp", "tcp", "udp", "wsize", "rsize",
"retrans", "acregmin", "acregmax", "acdirmin", "acdirmax", "resvport",
"readahead", "hostname", "timeout", "addr", "fh", "nfsv3", "sec",
- "principal", "nfsv4", "gssname", "allgssname", "dirpath",
- "nametimeo", "negnametimeo", "nocto", "wcommitsize", "minvers",
+ "principal", "nfsv4", "gssname", "allgssname", "dirpath", "minvers",
+ "nametimeo", "negnametimeo", "nocto", "pnfs", "wcommitsize",
NULL };
/*
@@ -839,6 +839,8 @@ nfs_mount(struct mount *mp)
args.flags |= NFSMNT_ALLGSSNAME;
if (vfs_getopt(mp->mnt_optnew, "nocto", NULL, NULL) == 0)
args.flags |= NFSMNT_NOCTO;
+ if (vfs_getopt(mp->mnt_optnew, "pnfs", NULL, NULL) == 0)
+ args.flags |= NFSMNT_PNFS;
if (vfs_getopt(mp->mnt_optnew, "readdirsize", (void **)&opt, NULL) == 0) {
if (opt == NULL) {
vfs_mount_error(mp, "illegal readdirsize");
Modified: projects/nfsv4.1-client/sys/nfsclient/nfsargs.h
==============================================================================
--- projects/nfsv4.1-client/sys/nfsclient/nfsargs.h Tue Apr 10 01:20:32 2012 (r234075)
+++ projects/nfsv4.1-client/sys/nfsclient/nfsargs.h Tue Apr 10 01:26:58 2012 (r234076)
@@ -98,5 +98,6 @@ struct nfs_args {
#define NFSMNT_ALLGSSNAME 0x08000000 /* Use principal for all accesses */
#define NFSMNT_STRICT3530 0x10000000 /* Adhere strictly to RFC3530 */
#define NFSMNT_NOCTO 0x20000000 /* Don't flush attrcache on open */
+#define NFSMNT_PNFS 0x40000000 /* Enable pNFS support */
#endif
More information about the svn-src-projects
mailing list