MFC r199227:
Add the possibility for vfs.root.mountfrom tunable to accept a list of items rather than a single one. While there fix also a nit in a comment. Sponsored by: Sandvine Incorporated
This commit is contained in:
parent
fac7a2abd8
commit
9a6d318802
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/stable/8/; revision=199853
@ -104,13 +104,17 @@ struct vnode *rootvnode;
|
||||
* The root filesystem is detailed in the kernel environment variable
|
||||
* vfs.root.mountfrom, which is expected to be in the general format
|
||||
*
|
||||
* <vfsname>:[<path>]
|
||||
* <vfsname>:[<path>][ <vfsname>:[<path>] ...]
|
||||
* vfsname := the name of a VFS known to the kernel and capable
|
||||
* of being mounted as root
|
||||
* path := disk device name or other data used by the filesystem
|
||||
* to locate its physical store
|
||||
*
|
||||
* The environment variable vfs.root.mountfrom options is a comma delimited
|
||||
* If the environment variable vfs.root.mountfrom is a space separated list,
|
||||
* each list element is tried in turn and the root filesystem will be mounted
|
||||
* from the first one that suceeds.
|
||||
*
|
||||
* The environment variable vfs.root.mountfrom.options is a comma delimited
|
||||
* set of string mount options. These mount options must be parseable
|
||||
* by nmount() in the kernel.
|
||||
*/
|
||||
@ -1643,7 +1647,7 @@ vfs_opterror(struct vfsoptlist *opts, const char *fmt, ...)
|
||||
void
|
||||
vfs_mountroot(void)
|
||||
{
|
||||
char *cp, *options;
|
||||
char *cp, *cpt, *options, *tmpdev;
|
||||
int error, i, asked = 0;
|
||||
|
||||
options = NULL;
|
||||
@ -1695,11 +1699,16 @@ vfs_mountroot(void)
|
||||
*/
|
||||
cp = getenv("vfs.root.mountfrom");
|
||||
if (cp != NULL) {
|
||||
error = vfs_mountroot_try(cp, options);
|
||||
cpt = cp;
|
||||
while ((tmpdev = strsep(&cpt, " \t")) != NULL) {
|
||||
error = vfs_mountroot_try(tmpdev, options);
|
||||
if (error == 0) {
|
||||
freeenv(cp);
|
||||
if (!error)
|
||||
goto mounted;
|
||||
}
|
||||
}
|
||||
freeenv(cp);
|
||||
}
|
||||
|
||||
/*
|
||||
* Try values that may have been computed by code during boot
|
||||
|
Loading…
Reference in New Issue
Block a user