svn commit: r273485 - head/sys/fs/nfsclient

Rick Macklem rmacklem at FreeBSD.org
Wed Oct 22 21:57:36 UTC 2014


Author: rmacklem
Date: Wed Oct 22 21:57:35 2014
New Revision: 273485
URL: https://svnweb.freebsd.org/changeset/base/273485

Log:
  Revert r273481 so it can be recoded using fls(), which
  some feel will make it more readable.

Modified:
  head/sys/fs/nfsclient/nfs_clvfsops.c

Modified: head/sys/fs/nfsclient/nfs_clvfsops.c
==============================================================================
--- head/sys/fs/nfsclient/nfs_clvfsops.c	Wed Oct 22 21:45:12 2014	(r273484)
+++ head/sys/fs/nfsclient/nfs_clvfsops.c	Wed Oct 22 21:57:35 2014	(r273485)
@@ -552,7 +552,7 @@ static void
 nfs_decode_args(struct mount *mp, struct nfsmount *nmp, struct nfs_args *argp,
     const char *hostname, struct ucred *cred, struct thread *td)
 {
-	int i, s;
+	int s;
 	int adjsock;
 	char *p;
 
@@ -621,36 +621,18 @@ nfs_decode_args(struct mount *mp, struct
 
 	if ((argp->flags & NFSMNT_WSIZE) && argp->wsize > 0) {
 		nmp->nm_wsize = argp->wsize;
-		/*
-		 * Clip at the power of 2 below the size. There is an
-		 * issue (not isolated) that causes intermittent page
-		 * faults if this is not done.
-		 */
-		i = NFS_FABLKSIZE;
-		for (;;) {
-			if (i * 2 > nmp->nm_wsize) {
-				nmp->nm_wsize = i;
-				break;
-			}
-			i *= 2;
-		}
+		/* Round down to multiple of blocksize */
+		nmp->nm_wsize &= ~(NFS_FABLKSIZE - 1);
+		if (nmp->nm_wsize <= 0)
+			nmp->nm_wsize = NFS_FABLKSIZE;
 	}
 
 	if ((argp->flags & NFSMNT_RSIZE) && argp->rsize > 0) {
 		nmp->nm_rsize = argp->rsize;
-		/*
-		 * Clip at the power of 2 below the size. There is an
-		 * issue (not isolated) that causes intermittent page
-		 * faults if this is not done.
-		 */
-		i = NFS_FABLKSIZE;
-		for (;;) {
-			if (i * 2 > nmp->nm_rsize) {
-				nmp->nm_rsize = i;
-				break;
-			}
-			i *= 2;
-		}
+		/* Round down to multiple of blocksize */
+		nmp->nm_rsize &= ~(NFS_FABLKSIZE - 1);
+		if (nmp->nm_rsize <= 0)
+			nmp->nm_rsize = NFS_FABLKSIZE;
 	}
 
 	if ((argp->flags & NFSMNT_READDIRSIZE) && argp->readdirsize > 0) {


More information about the svn-src-all mailing list