parameterize max proc id
[unix-history] / usr / src / sys / kern / tty_tty.c
index 1f837a9..7fb68d7 100644 (file)
@@ -3,7 +3,7 @@
  * All rights reserved.  The Berkeley software License Agreement
  * specifies the terms and conditions for redistribution.
  *
  * All rights reserved.  The Berkeley software License Agreement
  * specifies the terms and conditions for redistribution.
  *
- *     @(#)tty_tty.c   7.7 (Berkeley) %G%
+ *     @(#)tty_tty.c   7.9 (Berkeley) %G%
  */
 
 /*
  */
 
 /*
@@ -32,8 +32,11 @@ syopen(dev, flag)
 
        if (ttyvp == NULL)
                return (ENXIO);
 
        if (ttyvp == NULL)
                return (ENXIO);
-       if (error = VOP_ACCESS(ttyvp,
-          (flag&FREAD ? VREAD : 0) | (flag&FWRITE ? VWRITE : 0), u.u_cred))
+       VOP_LOCK(ttyvp);
+       error = VOP_ACCESS(ttyvp,
+          (flag&FREAD ? VREAD : 0) | (flag&FWRITE ? VWRITE : 0), u.u_cred);
+       VOP_UNLOCK(ttyvp);
+       if (error)
                return (error);
        return (VOP_OPEN(ttyvp, flag, NOCRED));
 }
                return (error);
        return (VOP_OPEN(ttyvp, flag, NOCRED));
 }
@@ -99,6 +102,6 @@ syselect(dev, flag)
        struct vnode *ttyvp = cttyvp(u.u_procp);
 
        if (ttyvp == NULL)
        struct vnode *ttyvp = cttyvp(u.u_procp);
 
        if (ttyvp == NULL)
-               return (ENXIO);
+               return (1);     /* try operation to get EOF/failure */
        return (VOP_SELECT(ttyvp, flag, FREAD|FWRITE, NOCRED));
 }
        return (VOP_SELECT(ttyvp, flag, FREAD|FWRITE, NOCRED));
 }