release the old controlling terminal if setting a new one
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Tue, 16 Aug 1994 02:59:19 +0000 (18:59 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Tue, 16 Aug 1994 02:59:19 +0000 (18:59 -0800)
SCCS-vsn: sys/kern/vfs_vnops.c 8.4

usr/src/sys/kern/vfs_vnops.c

index a6890e4..5c235a4 100644 (file)
@@ -9,7 +9,7 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)vfs_vnops.c 8.3 (Berkeley) %G%
+ *     @(#)vfs_vnops.c 8.4 (Berkeley) %G%
  */
 
 #include <sys/param.h>
  */
 
 #include <sys/param.h>
@@ -363,6 +363,8 @@ vn_ioctl(fp, com, data, p)
        case VBLK:
                error = VOP_IOCTL(vp, com, data, fp->f_flag, p->p_ucred, p);
                if (error == 0 && com == TIOCSCTTY) {
        case VBLK:
                error = VOP_IOCTL(vp, com, data, fp->f_flag, p->p_ucred, p);
                if (error == 0 && com == TIOCSCTTY) {
+                       if (p->p_session->s_ttyvp)
+                               vrele(p->p_session->s_ttyvp);
                        p->p_session->s_ttyvp = vp;
                        VREF(vp);
                }
                        p->p_session->s_ttyvp = vp;
                        VREF(vp);
                }