diff options
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/kern_conf.c | 9 | ||||
-rw-r--r-- | sys/kern/tty_pty.c | 4 | ||||
-rw-r--r-- | sys/kern/vfs_export.c | 4 | ||||
-rw-r--r-- | sys/kern/vfs_subr.c | 4 |
4 files changed, 14 insertions, 7 deletions
diff --git a/sys/kern/kern_conf.c b/sys/kern/kern_conf.c index 6121ed7..90f667f 100644 --- a/sys/kern/kern_conf.c +++ b/sys/kern/kern_conf.c @@ -178,7 +178,7 @@ minor(dev_t x) } int -lminor(dev_t x) +dev2unit(dev_t x) { int i; @@ -188,6 +188,13 @@ lminor(dev_t x) return ((i & 0xff) | (i >> 8)); } +int +unit2minor(int unit) +{ + + return ((unit & 0xff) | ((unit << 8) & ~0xffff)); +} + dev_t makebdev(int x, int y) { diff --git a/sys/kern/tty_pty.c b/sys/kern/tty_pty.c index e8e7bbe..507a5aa 100644 --- a/sys/kern/tty_pty.c +++ b/sys/kern/tty_pty.c @@ -150,9 +150,9 @@ ptyinit(n) pt = malloc(sizeof(*pt), M_PTY, M_WAITOK); bzero(pt, sizeof(*pt)); pt->devs = devs = make_dev(&pts_cdevsw, n, - 0, 0, 0666, "tty%c%r", names[n / 32], n % 32); + UID_ROOT, GID_WHEEL, 0666, "tty%c%r", names[n / 32], n % 32); pt->devc = devc = make_dev(&ptc_cdevsw, n, - 0, 0, 0666, "pty%c%r", names[n / 32], n % 32); + UID_ROOT, GID_WHEEL, 0666, "pty%c%r", names[n / 32], n % 32); devs->si_drv1 = devc->si_drv1 = pt; devs->si_tty = devc->si_tty = &pt->pt_tty; diff --git a/sys/kern/vfs_export.c b/sys/kern/vfs_export.c index bebc3c9..9814fd6 100644 --- a/sys/kern/vfs_export.c +++ b/sys/kern/vfs_export.c @@ -1861,7 +1861,7 @@ vgonel(vp, p) */ if ((vp->v_type == VBLK || vp->v_type == VCHR) && vp->v_rdev != NULL) { simple_lock(&spechash_slock); - SLIST_REMOVE(&vp->v_hashchain, vp, vnode, v_specnext); + SLIST_REMOVE(&vp->v_rdev->si_hlist, vp, vnode, v_specnext); freedev(vp->v_rdev); simple_unlock(&spechash_slock); vp->v_rdev = NULL; @@ -1929,7 +1929,7 @@ vcount(vp) count = 0; simple_lock(&spechash_slock); - SLIST_FOREACH(vq, &vp->v_hashchain, v_specnext) + SLIST_FOREACH(vq, &vp->v_rdev->si_hlist, v_specnext) count += vq->v_usecount; simple_unlock(&spechash_slock); return (count); diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index bebc3c9..9814fd6 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -1861,7 +1861,7 @@ vgonel(vp, p) */ if ((vp->v_type == VBLK || vp->v_type == VCHR) && vp->v_rdev != NULL) { simple_lock(&spechash_slock); - SLIST_REMOVE(&vp->v_hashchain, vp, vnode, v_specnext); + SLIST_REMOVE(&vp->v_rdev->si_hlist, vp, vnode, v_specnext); freedev(vp->v_rdev); simple_unlock(&spechash_slock); vp->v_rdev = NULL; @@ -1929,7 +1929,7 @@ vcount(vp) count = 0; simple_lock(&spechash_slock); - SLIST_FOREACH(vq, &vp->v_hashchain, v_specnext) + SLIST_FOREACH(vq, &vp->v_rdev->si_hlist, v_specnext) count += vq->v_usecount; simple_unlock(&spechash_slock); return (count); |