summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/kern_conf.c9
-rw-r--r--sys/kern/tty_pty.c4
-rw-r--r--sys/kern/vfs_export.c4
-rw-r--r--sys/kern/vfs_subr.c4
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);
OpenPOWER on IntegriCloud