Re: A little question about safe mode

From: Andriy Gapon <avg_at_FreeBSD.org>
Date: Thu, 18 Oct 2012 18:33:12 +0300
on 18/10/2012 18:20 Andriy Gapon said the following:
> My guess is that the easiest way to avoid this ambiguity and the confusion that it
> causes (like the problem you described above) is to prepend "/dev/", if it's
> missing, right in vfs_mountroot.c before calling kernel_mount().

A patch (not tested):

--- a/sys/kern/vfs_mountroot.c
+++ b/sys/kern/vfs_mountroot.c
_at__at_ -676,6 +676,7 _at__at_ static int
 parse_mount(char **conf)
 {
 	char errmsg[255];
+	char devbuf[MNAMELEN];
 	struct mntarg *ma;
 	char *dev, *fs, *opts, *tok;
 	int delay, error, timeout;
_at__at_ -693,6 +694,11 _at__at_ parse_mount(char **conf)
 	parse_advance(&tok);
 	dev = tok;

+	if (dev[0] != '\0' && strncmp(dev, "/dev/", 5) != 0) {
+		snprintf(devbuf, sizeof(devbuf), "/dev/%s", dev);
+		dev = devbuf;
+	}
+
 	if (root_mount_mddev != -1) {
 		/* Handle substitution for the md unit number. */
 		tok = strstr(dev, "md#");


-- 
Andriy Gapon
Received on Thu Oct 18 2012 - 13:33:17 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:31 UTC