Module Name: src Committed By: pooka Date: Fri Jul 31 19:18:46 UTC 2009
Added Files: src/usr.sbin/puffs/rump_fdesc: Makefile rump_fdesc.8 rump_fdesc.c Log Message: rump_fdesc. it works, but it's actually not very sexy out of developer clothes, since the server cannot fetch the fd information from the kernel. Therefore, don't build it by default. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/usr.sbin/puffs/rump_fdesc/Makefile \ src/usr.sbin/puffs/rump_fdesc/rump_fdesc.8 \ src/usr.sbin/puffs/rump_fdesc/rump_fdesc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Added files: Index: src/usr.sbin/puffs/rump_fdesc/Makefile diff -u /dev/null src/usr.sbin/puffs/rump_fdesc/Makefile:1.1 --- /dev/null Fri Jul 31 19:18:46 2009 +++ src/usr.sbin/puffs/rump_fdesc/Makefile Fri Jul 31 19:18:46 2009 @@ -0,0 +1,8 @@ +# $NetBSD: Makefile,v 1.1 2009/07/31 19:18:46 pooka Exp $ +# + +MOUNTNAME= fdesc + +ISRUMP= # descualified + +.include <bsd.prog.mk> Index: src/usr.sbin/puffs/rump_fdesc/rump_fdesc.8 diff -u /dev/null src/usr.sbin/puffs/rump_fdesc/rump_fdesc.8:1.1 --- /dev/null Fri Jul 31 19:18:46 2009 +++ src/usr.sbin/puffs/rump_fdesc/rump_fdesc.8 Fri Jul 31 19:18:46 2009 @@ -0,0 +1,112 @@ +.\" $NetBSD: rump_fdesc.8,v 1.1 2009/07/31 19:18:46 pooka Exp $ +.\" +.\" WARNING: GENERATED FILE, DO NOT EDIT +.\" INSTEAD, EDIT makerumpmanpages.sh AND REGEN +.\" +.\" Copyright (c) 2008 Antti Kantee. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd February 15, 2009 +.Dt RUMP_FDESC 8 +.Os +.Sh NAME +.Nm rump_fdesc +.Nd mount the fdesc file system using a userspace server +.Sh SYNOPSIS +.Cd "file-system PUFFS" +.Cd "pseudo-device putter" +.Pp +.Nm +.Op options +.Ar special +.Ar node +.Sh DESCRIPTION +The +.Nm +utility can be used to mount fdesc file systems. +It uses +.Xr rump 3 +and +.Xr p2k 3 +to facilitate running the file system as a server in userspace. +As opposed to +.Xr mount_fdesc 8 , +.Nm +does not use file system code within the kernel and therefore does +not require kernel support except +.Xr puffs 4 . +Apart from a minor speed penalty (starting from 10% and depending +on the workload and file system in question), there is no difference +to using in-kernel code. +.Pp +In case mounting a file system image from a regular file, +.Nm +does not require the use of +.Xr vnconfig 8 +unlike kernel file systems. +Instead, the image path can be directly passed as the special file path. +The exception is if the image contains a disklabel. +In this case vnconfig is required to resolve the start offset for the +correct partition within the image. +.Pp +It is recommended that untrusted file system images be mounted with +.Nm +instead of +.Xr mount_fdesc 8 . +Corrupt file system images commonly cause the file system +to crash the entire kernel, but with +.Nm +only the userspace server process will dump core. +.Pp +To use +.Nm +via +.Xr mount 8 , +the flags +.Fl o Ar rump +and +.Fl t Ar fdesc +should be given. +Similarly, +.Nm +is run instead of +.Xr mount_fdesc 8 +if +.Dq rump +is added to the options field of +.Xr fstab 5 . +.Pp +Please see +.Xr mount_fdesc 8 +for a full description of the available command line options. +.Sh SEE ALSO +.Xr p2k 3 , +.Xr puffs 3 , +.Xr rump 3 , +.Xr mount_fdesc 8 +.Sh HISTORY +The +.Nm +utility first appeared in +.Nx 5.0 . +It is currently considered experimental. Index: src/usr.sbin/puffs/rump_fdesc/rump_fdesc.c diff -u /dev/null src/usr.sbin/puffs/rump_fdesc/rump_fdesc.c:1.1 --- /dev/null Fri Jul 31 19:18:46 2009 +++ src/usr.sbin/puffs/rump_fdesc/rump_fdesc.c Fri Jul 31 19:18:46 2009 @@ -0,0 +1,59 @@ +/* $NetBSD: rump_fdesc.c,v 1.1 2009/07/31 19:18:46 pooka Exp $ */ + +/* + * Copyright (c) 2008 Antti Kantee. All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <sys/types.h> +#include <sys/mount.h> + +#include <miscfs/fdesc/fdesc.h> + +#include <err.h> +#include <puffs.h> +#include <stdlib.h> +#include <unistd.h> + +#include <rump/p2k.h> + +#include "mount_fdesc.h" + +int +main(int argc, char *argv[]) +{ + char canon_dev[MAXPATHLEN], canon_dir[MAXPATHLEN]; + int mntflags; + int rv; + + setprogname(argv[0]); + + mount_fdesc_parseargs(argc, argv, NULL, &mntflags, + canon_dev, canon_dir); + rv = p2k_run_fs(MOUNT_FDESC, canon_dev, canon_dir, mntflags, + NULL, 0, PUFFS_KFLAG_NOCACHE_PAGE); + if (rv) + err(1, "mount"); + + return 0; +}