--- Net2/miscfs/kernfs/kernfs_vfsops.c 2018/04/24 18:09:50 1.1 +++ Net2/miscfs/kernfs/kernfs_vfsops.c 2018/04/24 18:15:39 1.1.1.2 @@ -33,7 +33,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: kernfs_vfsops.c,v 1.1 2018/04/24 18:09:50 root Exp $ + * kernfs_vfsops.c,v 1.7.2.1 1993/08/20 07:17:33 cgd Exp */ /* @@ -57,38 +57,6 @@ extern struct vnodeops spec_vnodeops; struct vnode *rrootdevvp; -/* - * cdevvp: - * get a character device node. - * this is used a few places in the miscfs routines. - * - * copied from the bdevvp in kern/vfs_subr.c - */ -cdevvp(dev, vpp) - dev_t dev; - struct vnode **vpp; -{ - register struct vnode *vp; - struct vnode *nvp; - int error; - - if (dev == NODEV) - return (0); - error = getnewvnode(VT_NON, (struct mount *)0, &spec_vnodeops, &nvp); - if (error) { - *vpp = 0; - return (error); - } - vp = nvp; - vp->v_type = VCHR; - if (nvp = checkalias(vp, dev, (struct mount *)0)) { - vput(vp); - vp = nvp; - } - *vpp = vp; - return (0); -} - kernfs_init() { int error, bmaj, cmaj; @@ -113,7 +81,7 @@ kernfs_init() /* this isn't fatal... */ if (error) { - printf("kernfs: no raw boot device\n"); + printf("kernfs: no raw root device\n"); rrootdevvp = 0; } } @@ -143,14 +111,15 @@ kernfs_mount(mp, path, data, ndp, p) if (mp->mnt_flag & MNT_UPDATE) return (EOPNOTSUPP); - error = getnewvnode(VT_UFS, mp, &kernfs_vnodeops, &rvp); /* XXX */ + error = getnewvnode(VT_KERNFS, mp, &kernfs_vnodeops, &rvp); if (error) return (error); fmp = (struct kernfs_mount *) malloc(sizeof(struct kernfs_mount), - M_UFSMNT, M_WAITOK); /* XXX */ + M_MISCFSMNT, M_WAITOK); rvp->v_type = VDIR; rvp->v_flag |= VROOT; + VTOKERN(rvp)->kf_kt = &kernfs_targets[KERNFS_TARGET_ROOT]; #ifdef KERNFS_DIAGNOSTIC printf("kernfs_mount: root vp = %x\n", rvp); #endif @@ -234,7 +203,7 @@ kernfs_unmount(mp, mntflags, p) /* * Finally, throw away the kernfs_mount structure */ - free(mp->mnt_data, M_UFSMNT); /* XXX */ + free(mp->mnt_data, M_MISCFSMNT); mp->mnt_data = 0; return 0; }