diff options
author | wollman <wollman@FreeBSD.org> | 1994-09-22 02:15:34 +0000 |
---|---|---|
committer | wollman <wollman@FreeBSD.org> | 1994-09-22 02:15:34 +0000 |
commit | e1b54223d3428821fbda0745e63c72ae21fef7c8 (patch) | |
tree | 2281802939cee07bdce01c4dc0bd0033b51e8d04 /sbin | |
parent | 68f50003d4ef378e2b86e98bf13451d75f7504fd (diff) | |
download | FreeBSD-src-e1b54223d3428821fbda0745e63c72ae21fef7c8.zip FreeBSD-src-e1b54223d3428821fbda0745e63c72ae21fef7c8.tar.gz |
Automatically load filesystem if not present in system and loadable.
Diffstat (limited to 'sbin')
-rw-r--r-- | sbin/mount_kernfs/mount_kernfs.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/sbin/mount_kernfs/mount_kernfs.c b/sbin/mount_kernfs/mount_kernfs.c index 33a6b5e..e3e2ec0 100644 --- a/sbin/mount_kernfs/mount_kernfs.c +++ b/sbin/mount_kernfs/mount_kernfs.c @@ -69,6 +69,7 @@ main(argc, argv) char *argv[]; { int ch, mntflags; + struct vfsconf *vfc; mntflags = 0; while ((ch = getopt(argc, argv, "o:")) != EOF) @@ -86,7 +87,16 @@ main(argc, argv) if (argc != 2) usage(); - if (mount(MOUNT_KERNFS, argv[1], mntflags, NULL)) + vfc = getvfsbyname("kernfs"); + if(!vfc && vfsisloadable("kernfs")) { + if(vfsload("kernfs")) { + err(1, "vfsload(kernfs)"); + } + endvfsent(); + vfc = getvfsbyname("kernfs"); + } + + if (mount(vfc ? vfc->vfc_index : MOUNT_KERNFS, argv[1], mntflags, NULL)) err(1, NULL); exit(0); } |