X-Git-Url: https://gitweb.dragonflybsd.org/dragonfly.git/blobdiff_plain/5c212566a45f56cb2608ab67ac011adbdba4142f..b13267a5123f6a14e47d788c4a8a2a8692e2a119:/sys/kern/vfs_conf.c diff --git a/sys/kern/vfs_conf.c b/sys/kern/vfs_conf.c index fd2c1d0c0d..d9ee84cc7b 100644 --- a/sys/kern/vfs_conf.c +++ b/sys/kern/vfs_conf.c @@ -26,7 +26,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/kern/vfs_conf.c,v 1.49.2.5 2003/01/07 11:56:53 joerg Exp $ - * $DragonFly: src/sys/kern/vfs_conf.c,v 1.14 2005/06/06 15:02:28 dillon Exp $ + * $DragonFly: src/sys/kern/vfs_conf.c,v 1.20 2006/09/10 01:26:39 dillon Exp $ */ /* @@ -105,7 +105,7 @@ static void vfs_mountroot(void *junk) { int i; - dev_t save_rootdev = rootdev; + cdev_t save_rootdev = rootdev; /* * The root filesystem information is compiled in, and we are @@ -142,13 +142,13 @@ vfs_mountroot(void *junk) * supplied via some other means. This is the preferred * mechanism. */ - if (!vfs_mountroot_try(getenv("vfs.root.mountfrom"))) + if (!vfs_mountroot_try(kgetenv("vfs.root.mountfrom"))) return; /* * If a vfs set rootdev, try it (XXX VINUM HACK!) */ - if (save_rootdev != NODEV) { + if (save_rootdev != NOCDEV) { rootdev = save_rootdev; if (!vfs_mountroot_try("")) return; @@ -188,7 +188,6 @@ vfs_mountroot(void *junk) static int vfs_mountroot_try(const char *mountfrom) { - struct thread *td = curthread; struct mount *mp; char *vfsname, *devname; int error; @@ -207,8 +206,8 @@ vfs_mountroot_try(const char *mountfrom) crit_exit(); /* parse vfs name and devname */ - vfsname = malloc(MFSNAMELEN, M_MOUNT, M_WAITOK); - devname = malloc(MNAMELEN, M_MOUNT, M_WAITOK); + vfsname = kmalloc(MFSNAMELEN, M_MOUNT, M_WAITOK); + devname = kmalloc(MNAMELEN, M_MOUNT, M_WAITOK); vfsname[0] = devname[0] = 0; sprintf(patt, "%%%d[a-z0-9]:%%%ds", MFSNAMELEN, MNAMELEN); if (sscanf(mountfrom, patt, vfsname, devname) < 1) @@ -229,22 +228,22 @@ vfs_mountroot_try(const char *mountfrom) printf("setrootbyname failed\n"); /* If the root device is a type "memory disk", mount RW */ - if (rootdev != NODEV && dev_is_good(rootdev) && + if (rootdev != NOCDEV && dev_is_good(rootdev) && (dev_dflags(rootdev) & D_MEMDISK)) { mp->mnt_flag &= ~MNT_RDONLY; } - error = VFS_MOUNT(mp, NULL, NULL, td); + error = VFS_MOUNT(mp, NULL, NULL, proc0.p_ucred); done: if (vfsname != NULL) - free(vfsname, M_MOUNT); + kfree(vfsname, M_MOUNT); if (devname != NULL) - free(devname, M_MOUNT); + kfree(devname, M_MOUNT); if (error != 0) { if (mp != NULL) { - vfs_unbusy(mp, td); - free(mp, M_MOUNT); + vfs_unbusy(mp); + kfree(mp, M_MOUNT); } printf("Root mount failed: %d\n", error); } else { @@ -253,7 +252,7 @@ done: /* sanity check system clock against root fs timestamp */ inittodr(mp->mnt_time); - vfs_unbusy(mp, td); + vfs_unbusy(mp); } return(error); } @@ -266,7 +265,7 @@ vfs_mountroot_ask(void) { char name[128]; int i; - dev_t dev; + cdev_t dev; for(;;) { printf("\nManual root filesystem specification:\n"); @@ -332,17 +331,17 @@ gets(char *cp) } /* - * Convert a given name to the dev_t of the disk-like device + * Convert a given name to the cdev_t of the disk-like device * it refers to. */ -dev_t -getdiskbyname(const char *name) +cdev_t +kgetdiskbyname(const char *name) { char *cp; int nlen; int cd, unit, slice, part; - dev_t dev; - dev_t rdev; + cdev_t dev; + cdev_t rdev; /* * Get the base name of the device @@ -356,7 +355,7 @@ getdiskbyname(const char *name) ++cp; if (cp == name) { printf("missing device name\n"); - return (NODEV); + return (NOCDEV); } nlen = cp - name; @@ -366,7 +365,7 @@ getdiskbyname(const char *name) unit = strtol(cp, &cp, 10); if (name + nlen == (const char *)cp || unit < 0 || unit > DKMAXUNIT) { printf("bad unit: %d\n", unit); - return (NODEV); + return (NOCDEV); } /* @@ -379,7 +378,7 @@ getdiskbyname(const char *name) slice = cp[1] - '0'; if (slice < 1 || slice > 9) { printf("bad slice number\n"); - return(NODEV); + return(NOCDEV); } ++slice; /* slice #1 starts at 2 */ cp += 2; @@ -399,7 +398,7 @@ getdiskbyname(const char *name) if (*cp != '\0') { printf("junk after name\n"); - return (NODEV); + return (NOCDEV); } /* @@ -418,7 +417,7 @@ getdiskbyname(const char *name) } if (cd == NUMCDEVSW) { printf("no such device '%*.*s'\n", nlen, nlen, name); - return (NODEV); + return (NOCDEV); } /* @@ -435,10 +434,10 @@ getdiskbyname(const char *name) static int setrootbyname(char *name) { - dev_t diskdev; + cdev_t diskdev; - diskdev = getdiskbyname(name); - if (diskdev != NODEV) { + diskdev = kgetdiskbyname(name); + if (diskdev != NOCDEV) { rootdev = diskdev; return (0); } @@ -449,15 +448,15 @@ setrootbyname(char *name) #ifdef DDB DB_SHOW_COMMAND(disk, db_getdiskbyname) { - dev_t dev; + cdev_t dev; if (modif[0] == '\0') { db_error("usage: show disk/devicename"); return; } - dev = getdiskbyname(modif); - if (dev != NODEV) - db_printf("dev_t = %p\n", dev); + dev = kgetdiskbyname(modif); + if (dev != NOCDEV) + db_printf("cdev_t = %p\n", dev); else db_printf("No disk device matched.\n"); }