Support mount -o rump, which uses the rump server instead of using

the kernel service.  E.g. "mount -t efs -o rump /dev/sgidev /mnt"
runs effectively "rump_efs /dev/sgidev /mnt".
This commit is contained in:
pooka 2009-01-11 20:39:34 +00:00
parent bbf08a8acb
commit 694167d28f
3 changed files with 28 additions and 6 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: mntopts.h,v 1.11 2008/07/31 05:38:04 simonb Exp $ */
/* $NetBSD: mntopts.h,v 1.12 2009/01/11 20:39:34 pooka Exp $ */
/*-
* Copyright (c) 1994
@ -70,6 +70,7 @@ struct mntopt {
/* This is parsed by mount(8), but is ignored by specific mount_*(8)s. */
#define MOPT_AUTO { "auto", 0, 0, 0 }
#define MOPT_RUMP { "rump", 0, 0, 0 }
#define MOPT_NULL { NULL, 0, 0, 0 }
#define MOPT_FSTAB_COMPAT \

View File

@ -1,4 +1,4 @@
.\" $NetBSD: mount.8,v 1.62 2008/08/13 10:00:10 martti Exp $
.\" $NetBSD: mount.8,v 1.63 2009/01/11 20:39:34 pooka Exp $
.\"
.\" Copyright (c) 1980, 1989, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
@ -29,7 +29,7 @@
.\"
.\" @(#)mount.8 8.8 (Berkeley) 6/16/94
.\"
.Dd August 4, 2008
.Dd January 11, 2009
.Dt MOUNT 8
.Os
.Sh NAME
@ -222,6 +222,12 @@ The file system must be mounted read-only.
All cached meta-data are invalidated, superblock and summary information
is re-read from disk, all cached inactive vnodes and file data are
invalidated and all inode data are re-read for all active vnodes.
.It Cm rump
Instead of running mount_type to mount the file system, run rump_type.
This uses a userspace server to mount the file system and does not
require kernel support for the specific file system type. See the
.Fl t
flag and respective rump_type manual page for more information.
.It Cm softdep
(FFS only) Mount the file system using soft dependencies.
This means that metadata will not be written immediately,
@ -490,6 +496,18 @@ mount -t cd9660 -o nodev,nosuid /dev/cd0a /mnt
.Xr mount_udf 8 ,
.Xr mount_umap 8 ,
.Xr mount_union 8 ,
.Xr rump_cd9660 8 ,
.Xr rump_efs 8 ,
.Xr rump_ext2fs 8 ,
.Xr rump_ffs 8 ,
.Xr rump_hfs 8 ,
.Xr rump_lfs 8 ,
.Xr rump_msdos 8 ,
.Xr rump_nfs 8 ,
.Xr rump_ntfs 8 ,
.Xr rump_sysvbfs 8 ,
.Xr rump_tmpfs 8 ,
.Xr rump_udf 8 ,
.Xr umount 8
.Sh HISTORY
A

View File

@ -1,4 +1,4 @@
/* $NetBSD: mount.c,v 1.87 2009/01/11 12:33:50 pooka Exp $ */
/* $NetBSD: mount.c,v 1.88 2009/01/11 20:39:34 pooka Exp $ */
/*
* Copyright (c) 1980, 1989, 1993, 1994
@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1980, 1989, 1993, 1994\
#if 0
static char sccsid[] = "@(#)mount.c 8.25 (Berkeley) 5/8/95";
#else
__RCSID("$NetBSD: mount.c,v 1.87 2009/01/11 12:33:50 pooka Exp $");
__RCSID("$NetBSD: mount.c,v 1.88 2009/01/11 20:39:34 pooka Exp $");
#endif
#endif /* not lint */
@ -430,7 +430,10 @@ mountfs(const char *vfstype, const char *spec, const char *name,
if (argv == NULL)
err(1, "malloc");
(void) snprintf(execbase, sizeof(execbase), "mount_%s", vfstype);
if (hasopt(optbuf, "rump"))
(void)snprintf(execbase, sizeof(execbase), "rump_%s", vfstype);
else
(void)snprintf(execbase, sizeof(execbase), "mount_%s", vfstype);
argc = 0;
argv[argc++] = execbase;
if (optbuf)