diff options
author | Garrett Wollman <wollman@FreeBSD.org> | 1994-09-22 02:07:33 +0000 |
---|---|---|
committer | Garrett Wollman <wollman@FreeBSD.org> | 1994-09-22 02:07:33 +0000 |
commit | c974f9c6a643886f1fd87eedbb82955f3420dc8e (patch) | |
tree | 0f1bbcb4a9275356d74b9a9abd61dac9b8c172d5 /sbin/mount/mount_ufs.c | |
parent | 862cdb8eb6329b6d1e3b67fa8d488f53ea58b03c (diff) | |
download | src-c974f9c6a643886f1fd87eedbb82955f3420dc8e.tar.gz src-c974f9c6a643886f1fd87eedbb82955f3420dc8e.zip |
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.)
Notes
Notes:
svn path=/head/; revision=2968
Diffstat (limited to 'sbin/mount/mount_ufs.c')
-rw-r--r-- | sbin/mount/mount_ufs.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/sbin/mount/mount_ufs.c b/sbin/mount/mount_ufs.c index babb760a07d8..43dfb055e198 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: |