Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Mar 2012 02:13:47 +0000 (UTC)
From:      Rick Macklem <rmacklem@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r232713 - projects/nfsv4.1-client/sys/fs/nfsclient
Message-ID:  <201203090213.q292DlI2074940@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rmacklem
Date: Fri Mar  9 02:13:47 2012
New Revision: 232713
URL: http://svn.freebsd.org/changeset/base/232713

Log:
  Add checks for callbacks working before either asking for layouts
  or trying to use them. Callbacks are required for pNFS, so the
  server can recall layouts.

Modified:
  projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c

Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c
==============================================================================
--- projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c	Fri Mar  9 01:32:05 2012	(r232712)
+++ projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c	Fri Mar  9 02:13:47 2012	(r232713)
@@ -322,7 +322,8 @@ else printf(" fhl=0\n");
 			}
 
 			/* Try and get a Layout, if it is supported. */
-			if (error == 0 && NFSHASPNFS(nmp)) {
+			if (error == 0 && NFSHASPNFS(nmp) &&
+			    nfscl_enablecallb != 0 && nfs_numnfscbd > 0) {
 				stateid.seqid = op->nfso_stateid.seqid;
 				stateid.other[0] = op->nfso_stateid.other[0];
 				stateid.other[1] = op->nfso_stateid.other[1];
@@ -5274,7 +5275,7 @@ nfscl_doiods(vnode_t vp, struct uio *uio
 	int eof, error;
 	void *lckp;
 
-	if (!NFSHASPNFS(nmp))
+	if (!NFSHASPNFS(nmp) || nfscl_enablecallb == 0 || nfs_numnfscbd == 0)
 		return (EIO);
 	/* Now, get a reference cnt on the clientid for this mount. */
 	if (nfscl_getref(nmp) == 0)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201203090213.q292DlI2074940>