summaryrefslogtreecommitdiffstats
path: root/sbin/mount/mount_ufs.c
diff options
context:
space:
mode:
authorwollman <wollman@FreeBSD.org>1994-09-22 02:07:33 +0000
committerwollman <wollman@FreeBSD.org>1994-09-22 02:07:33 +0000
commit68f50003d4ef378e2b86e98bf13451d75f7504fd (patch)
tree0f1bbcb4a9275356d74b9a9abd61dac9b8c172d5 /sbin/mount/mount_ufs.c
parentd27339a8c655794d58cd82ad109ab211c4adfa56 (diff)
downloadFreeBSD-src-68f50003d4ef378e2b86e98bf13451d75f7504fd.zip
FreeBSD-src-68f50003d4ef378e2b86e98bf13451d75f7504fd.tar.gz
Use getvfs* functions to map between VFS types and names.
Automatically load UFS if it is not present but is loadable. (This won't happen now, but could happen if we fix NFS diskless support.)
Diffstat (limited to 'sbin/mount/mount_ufs.c')
-rw-r--r--sbin/mount/mount_ufs.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/sbin/mount/mount_ufs.c b/sbin/mount/mount_ufs.c
index babb760..43dfb05 100644
--- a/sbin/mount/mount_ufs.c
+++ b/sbin/mount/mount_ufs.c
@@ -72,6 +72,7 @@ mount_ufs(argc, argv)
struct ufs_args args;
int ch, mntflags;
char *fs_name;
+ struct vfsconf *vfc;
mntflags = 0;
optind = optreset = 1; /* Reset for parse of new argv. */
@@ -100,7 +101,21 @@ mount_ufs(argc, argv)
else
args.export.ex_flags = 0;
- if (mount(MOUNT_UFS, fs_name, mntflags, &args) < 0) {
+ setvfsent(0);
+ if(!(vfc = getvfsbyname("ufs"))) {
+ if(vfsisloadable("ufs")) {
+ if(vfsload("ufs")) {
+ warn("vfsload(\"ufs\")");
+ return 1;
+ }
+ endvfsent(); /* flush old table */
+ vfc = getvfsbyname("ufs");
+ } else {
+ /*warnx("ufs: filesystem not found");*/
+ }
+ }
+
+ if (mount(vfc ? vfc->vfc_index : MOUNT_UFS, fs_name, mntflags, &args) < 0) {
(void)fprintf(stderr, "%s on %s: ", args.fspec, fs_name);
switch (errno) {
case EMFILE:
OpenPOWER on IntegriCloud