svn commit: r248255 - in head/sys: fs/nfs fs/nfsclient nfsclient rpc

John Baldwin jhb at FreeBSD.org
Wed Mar 13 21:06:05 UTC 2013


Author: jhb
Date: Wed Mar 13 21:06:03 2013
New Revision: 248255
URL: http://svnweb.freebsd.org/changeset/base/248255

Log:
  Revert 195703 and 195821 as this special stop handling in NFS is now
  implemented via VFCF_SBDRY rather than passing PBDRY to individual
  sleep calls.

Modified:
  head/sys/fs/nfs/nfsport.h
  head/sys/fs/nfsclient/nfs_clbio.c
  head/sys/fs/nfsclient/nfs_clvnops.c
  head/sys/nfsclient/nfs_bio.c
  head/sys/nfsclient/nfs_vnops.c
  head/sys/nfsclient/nfsmount.h
  head/sys/rpc/clnt_rc.c
  head/sys/rpc/clnt_vc.c

Modified: head/sys/fs/nfs/nfsport.h
==============================================================================
--- head/sys/fs/nfs/nfsport.h	Wed Mar 13 20:35:51 2013	(r248254)
+++ head/sys/fs/nfs/nfsport.h	Wed Mar 13 21:06:03 2013	(r248255)
@@ -981,13 +981,6 @@ struct nfsreq {
 #define	NFSVNO_DELEGOK(v)	(1)
 #endif
 
-/*
- * Define this as the flags argument for msleep() when catching signals
- * while holding a resource that other threads would block for, such as
- * a vnode lock.
- */
-#define	NFS_PCATCH	(PCATCH | PBDRY)
-
 #endif	/* _KERNEL */
 
 #endif	/* _NFS_NFSPORT_H */

Modified: head/sys/fs/nfsclient/nfs_clbio.c
==============================================================================
--- head/sys/fs/nfsclient/nfs_clbio.c	Wed Mar 13 20:35:51 2013	(r248254)
+++ head/sys/fs/nfsclient/nfs_clbio.c	Wed Mar 13 21:06:03 2013	(r248255)
@@ -1297,7 +1297,7 @@ nfs_getcacheblk(struct vnode *vp, daddr_
  		sigset_t oldset;
 
  		newnfs_set_sigmask(td, &oldset);
-		bp = getblk(vp, bn, size, NFS_PCATCH, 0, 0);
+		bp = getblk(vp, bn, size, PCATCH, 0, 0);
  		newnfs_restore_sigmask(td, &oldset);
 		while (bp == NULL) {
 			if (newnfs_sigintr(nmp, td))
@@ -1332,7 +1332,7 @@ ncl_vinvalbuf(struct vnode *vp, int flag
 	if ((nmp->nm_mountp->mnt_kern_flag & MNTK_UNMOUNTF))
 		intrflg = 1;
 	if (intrflg) {
-		slpflag = NFS_PCATCH;
+		slpflag = PCATCH;
 		slptimeo = 2 * hz;
 	} else {
 		slpflag = 0;
@@ -1413,7 +1413,7 @@ ncl_asyncio(struct nfsmount *nmp, struct
 	}
 again:
 	if (nmp->nm_flag & NFSMNT_INT)
-		slpflag = NFS_PCATCH;
+		slpflag = PCATCH;
 	gotiod = FALSE;
 
 	/*
@@ -1478,7 +1478,7 @@ again:
 					mtx_unlock(&ncl_iod_mutex);					
 					return (error2);
 				}
-				if (slpflag == NFS_PCATCH) {
+				if (slpflag == PCATCH) {
 					slpflag = 0;
 					slptimeo = 2 * hz;
 				}

Modified: head/sys/fs/nfsclient/nfs_clvnops.c
==============================================================================
--- head/sys/fs/nfsclient/nfs_clvnops.c	Wed Mar 13 20:35:51 2013	(r248254)
+++ head/sys/fs/nfsclient/nfs_clvnops.c	Wed Mar 13 21:06:03 2013	(r248255)
@@ -2660,7 +2660,7 @@ ncl_flush(struct vnode *vp, int waitfor,
 	if (called_from_renewthread != 0)
 		slptimeo = hz;
 	if (nmp->nm_flag & NFSMNT_INT)
-		slpflag = NFS_PCATCH;
+		slpflag = PCATCH;
 	if (!commit)
 		passone = 0;
 	bo = &vp->v_bufobj;
@@ -2866,7 +2866,7 @@ loop:
 				error = EINTR;
 				goto done;
 			}
-			if (slpflag & PCATCH) {
+			if (slpflag == PCATCH) {
 				slpflag = 0;
 				slptimeo = 2 * hz;
 			}
@@ -2912,7 +2912,7 @@ loop:
 			    error = newnfs_sigintr(nmp, td);
 			    if (error)
 				goto done;
-			    if (slpflag & PCATCH) {
+			    if (slpflag == PCATCH) {
 				slpflag = 0;
 				slptimeo = 2 * hz;
 			    }

Modified: head/sys/nfsclient/nfs_bio.c
==============================================================================
--- head/sys/nfsclient/nfs_bio.c	Wed Mar 13 20:35:51 2013	(r248254)
+++ head/sys/nfsclient/nfs_bio.c	Wed Mar 13 21:06:03 2013	(r248255)
@@ -1242,7 +1242,7 @@ nfs_getcacheblk(struct vnode *vp, daddr_
  		sigset_t oldset;
 
  		nfs_set_sigmask(td, &oldset);
-		bp = getblk(vp, bn, size, NFS_PCATCH, 0, 0);
+		bp = getblk(vp, bn, size, PCATCH, 0, 0);
  		nfs_restore_sigmask(td, &oldset);
 		while (bp == NULL) {
 			if (nfs_sigintr(nmp, td))
@@ -1275,7 +1275,7 @@ nfs_vinvalbuf(struct vnode *vp, int flag
 	if ((nmp->nm_flag & NFSMNT_INT) == 0)
 		intrflg = 0;
 	if (intrflg) {
-		slpflag = NFS_PCATCH;
+		slpflag = PCATCH;
 		slptimeo = 2 * hz;
 	} else {
 		slpflag = 0;
@@ -1354,7 +1354,7 @@ nfs_asyncio(struct nfsmount *nmp, struct
 	}
 again:
 	if (nmp->nm_flag & NFSMNT_INT)
-		slpflag = NFS_PCATCH;
+		slpflag = PCATCH;
 	gotiod = FALSE;
 
 	/*
@@ -1419,7 +1419,7 @@ again:
 					mtx_unlock(&nfs_iod_mtx);
 					return (error2);
 				}
-				if (slpflag == NFS_PCATCH) {
+				if (slpflag == PCATCH) {
 					slpflag = 0;
 					slptimeo = 2 * hz;
 				}

Modified: head/sys/nfsclient/nfs_vnops.c
==============================================================================
--- head/sys/nfsclient/nfs_vnops.c	Wed Mar 13 20:35:51 2013	(r248254)
+++ head/sys/nfsclient/nfs_vnops.c	Wed Mar 13 21:06:03 2013	(r248255)
@@ -2992,7 +2992,7 @@ nfs_flush(struct vnode *vp, int waitfor,
 	int bvecsize = 0, bveccount;
 
 	if (nmp->nm_flag & NFSMNT_INT)
-		slpflag = NFS_PCATCH;
+		slpflag = PCATCH;
 	if (!commit)
 		passone = 0;
 	bo = &vp->v_bufobj;
@@ -3190,7 +3190,7 @@ loop:
 				error = EINTR;
 				goto done;
 			}
-			if (slpflag & PCATCH) {
+			if (slpflag == PCATCH) {
 				slpflag = 0;
 				slptimeo = 2 * hz;
 			}
@@ -3228,7 +3228,7 @@ loop:
 			    error = nfs_sigintr(nmp, td);
 			    if (error)
 				goto done;
-			    if (slpflag & PCATCH) {
+			    if (slpflag == PCATCH) {
 				slpflag = 0;
 				slptimeo = 2 * hz;
 			    }

Modified: head/sys/nfsclient/nfsmount.h
==============================================================================
--- head/sys/nfsclient/nfsmount.h	Wed Mar 13 20:35:51 2013	(r248254)
+++ head/sys/nfsclient/nfsmount.h	Wed Mar 13 21:06:03 2013	(r248255)
@@ -125,8 +125,6 @@ struct	nfsmount {
 #define NFS_DEFAULT_NEGNAMETIMEO	60
 #endif
 
-#define	NFS_PCATCH	(PCATCH | PBDRY)
-
 #endif
 
 #endif

Modified: head/sys/rpc/clnt_rc.c
==============================================================================
--- head/sys/rpc/clnt_rc.c	Wed Mar 13 20:35:51 2013	(r248254)
+++ head/sys/rpc/clnt_rc.c	Wed Mar 13 21:06:03 2013	(r248255)
@@ -247,8 +247,7 @@ clnt_reconnect_call(
 			stat = clnt_reconnect_connect(cl);
 			if (stat == RPC_SYSTEMERROR) {
 				error = tsleep(&fake_wchan,
-				    rc->rc_intr ? PCATCH | PBDRY : 0, "rpccon",
-				    hz);
+				    rc->rc_intr ? PCATCH : 0, "rpccon", hz);
 				if (error == EINTR || error == ERESTART)
 					return (RPC_INTR);
 				tries++;

Modified: head/sys/rpc/clnt_vc.c
==============================================================================
--- head/sys/rpc/clnt_vc.c	Wed Mar 13 20:35:51 2013	(r248254)
+++ head/sys/rpc/clnt_vc.c	Wed Mar 13 21:06:03 2013	(r248255)
@@ -162,7 +162,7 @@ clnt_vc_create(
 		interrupted = 0;
 		sleep_flag = PSOCK;
 		if (intrflag != 0)
-			sleep_flag |= (PCATCH | PBDRY);
+			sleep_flag |= PCATCH;
 		while ((so->so_state & SS_ISCONNECTING)
 		    && so->so_error == 0) {
 			error = msleep(&so->so_timeo, SOCK_MTX(so),
@@ -470,7 +470,6 @@ call_again:
 		errp->re_errno = error;
 		switch (error) {
 		case EINTR:
-		case ERESTART:
 			stat = RPC_INTR;
 			break;
 		case EWOULDBLOCK:
@@ -704,7 +703,7 @@ clnt_vc_control(CLIENT *cl, u_int reques
 
 	case CLSET_INTERRUPTIBLE:
 		if (*(int *) info)
-			ct->ct_waitflag = PCATCH | PBDRY;
+			ct->ct_waitflag = PCATCH;
 		else
 			ct->ct_waitflag = 0;
 		break;


More information about the svn-src-all mailing list