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;
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to