Commit Graph

51 Commits

Author SHA1 Message Date
pooka 2ce66cd910 use newstyle rump lwp interfaces 2009-10-15 16:41:08 +00:00
pooka bf3992af18 Adjust names of external rump control interfaces to match the
new rump_pub namespace.
2009-10-14 18:22:50 +00:00
pooka a230afc74e fix warning whine 2009-10-07 20:53:38 +00:00
pooka ae7625c02d Add what is essentially disklabel support. All disk-based file
systems should be mounted with ukfs_mount_disk() from now on.  The
partition argument specifies which label is being mounted (or the
entire image).  E.g. partition 4 should be label 'e'.
2009-10-07 20:51:00 +00:00
pooka 323d1b6573 * allow callers to store a private data pointer behind the ukfs handle
* release reference on root vnode before unmounting
  (and reaquire the root vnode if unmount fails)
* return correct error value if unmount fails
2009-10-02 09:32:01 +00:00
pooka e99ca06d65 Give rump_sys_unmount() in ukfs_release() a curlwp context. This
prevents use-after-free and should fix crashy cases reported by
Arnaud Ysmal.
2009-09-29 11:17:00 +00:00
pooka 70d95ce59f fix markup 2009-09-14 20:54:34 +00:00
pooka 1752ac9b33 If opening the device fails, skip etfs registration only if it is
because of ENOENT.  Otherwise, let the file system handle it.
2009-08-04 12:37:14 +00:00
pooka d90603b573 fix errno reporting 2009-08-03 15:08:37 +00:00
pooka 8bf6866a3f * use new etfs interface
+ attempt to register only if we can stat() the devpath.  this works
    around e.g. nfs devpath, which is useless to register to etfs
    XXX: the caller should decide
2009-08-03 14:24:58 +00:00
pooka c39552c570 return proper errno from mount 2009-07-23 01:01:31 +00:00
pooka 77d8bc0d04 delint 2009-07-22 21:05:30 +00:00
pooka ee47269736 Since rump rootfs now supports creating directories, mount ukfs
mounts at the requested mountpoint instead of as the rump kernel
rootfs.  While doing so, generally convert everything to use system
calls instead of handcrafter rump interfaces (e.g. rump_sys_mount()
instead of rump_mnt_mount()).  This avoids a lot of unnecessary
fuss.

Change UKFS_DEFAULTMP from / to /ukfs and bump ukfs version.
2009-07-22 20:46:34 +00:00
pooka 80f30aa223 Can't see any reason to stat() the .so before dlopen(), so get rid
of that call.  uses normal ldlib paths now
2009-07-21 00:19:57 +00:00
pooka d2895b1d1d use compat syscalls if necessary 2009-05-22 08:59:53 +00:00
pooka 1decab3813 Fix calls to rump syscalls now that the padding argument is no
longer advertised.
2009-05-15 15:54:03 +00:00
pooka 6e63908b9f Since rump_module_load() doesn't actually load the module, change
the name to rump_module_init().  Also, adjust the signature to take
a direct pointer to modinfo and allow passing of props.  Finally,
provide rump_module_fini().
2009-05-02 15:20:08 +00:00
pooka 45ef580f17 Merge librumpfs_ufs into librumpfs_ffs. This reflects what happened
with the ffs kernel module and follows the trend of retiring ufs.
It also allows to get rid of a special case kludge in runtime module
loading, since ufs was not really a module.  librumpfs_ufs is now
obsoleted and ffs consumers should be linked solely against
librumpfs_ffs.
2009-05-02 01:15:52 +00:00
pooka 28e32e3408 Provide a stateful mode for readdir/read/write. Using them gives
a measurable boost to some fs-utils commands.
2009-04-26 22:23:01 +00:00
joerg 6a85fc7cdf Use .Bl -ohang instead of physical markup. 2009-04-11 16:44:01 +00:00
pooka 74e11245a1 MNT_SOFTDEP -> MNT_LOG in example. pointed out by mrg. 2009-04-06 12:03:50 +00:00
pooka efd7bfa323 release root vnode at unmount 2009-04-06 03:27:39 +00:00
pooka d5aab2d6c4 Do not flock() block devices. The kernel recently started to guard
against opening a block device twice and flock requires that we
keep the device open.  Hence, the same mount would attempt to open
for locking and then VOP_OPEN for kernel access and run into
problems.  This makes it possible to rump_foofs block devices again,
i.e. take the same command line arguments as regular mounts.
Noticed by apb.
2009-02-11 14:35:58 +00:00
pooka d9c038d4fe Adjust for explicit errno parameter removal from rump syscalls 2009-01-23 19:36:01 +00:00
pooka 0d2e9d5345 Add #ifdef to disable pthread linkage requirement at compile-time. 2009-01-23 15:06:48 +00:00
pooka 2758ac8cf1 Update per rump_sys call __RENAME(). 2009-01-13 22:33:10 +00:00
christos 461a86f9bd merge christos-time_t 2009-01-11 02:45:45 +00:00
pooka e605194ace Nuke macros which haven't been used since the advent of RUMP_VOPs. 2008-12-31 00:35:00 +00:00
stacktic 69a3e4d4ea Closing file in ukfs_release 2008-12-30 10:31:22 +00:00
pooka 0b7df1d2e2 LIBDPLIBS on librumpvfs 2008-11-27 16:14:46 +00:00
wiz 11655fdf0f Fix two mdoclint warnings. 2008-11-26 19:05:55 +00:00
pooka 24bc96c743 Add BUGS section which notes that dynamic linker features in dealing
with link sets prevent from including more than one file system on
the link line and that the rest must be loaded dynamically at runtime.
2008-11-25 06:44:19 +00:00
pooka d0303b2f28 Return ENODEV instead of ENOENT if the file system is not available. 2008-11-24 05:54:39 +00:00
pooka 945e7d735e rump_vfs_load -> rump_module_load 2008-11-21 06:10:15 +00:00
pooka 9c035d43d1 dlerror() resets the error message, so save it since we want to
access it twice.
2008-11-21 06:07:23 +00:00
pooka 57f1031888 Use RUMP_VOP instead of prehistoric rump_vp. 2008-11-17 13:22:15 +00:00
pooka f455f7ee91 * use advisory file locks to avoid multiple mounts on the same device
(multiple rdonly mounts are still allowed)
* shuffle some assignments to avoid leaking resources in error branches
2008-11-07 00:18:33 +00:00
pooka 5877c6dc5e Embed library build version into the init call and refuse to init
if they don't match.  In other words, this is a lightweight library
major number.
2008-10-07 23:16:59 +00:00
pooka 10f58aee6b adapt to RUMPCRED_SUSER change 2008-09-30 19:26:23 +00:00
pooka d93a348b24 remove verbosity attack 2008-09-29 15:59:54 +00:00
pooka 24da753b34 fix type for a few functions 2008-09-07 15:14:31 +00:00
pooka 10b4d05961 Fix rump_vfs_sync() credarg also. 2008-08-14 15:24:18 +00:00
pooka 190154b4de Fix arg to RUMP_VOP_READDIR, NULL no longer works there. 2008-08-14 15:22:41 +00:00
pooka 44053cbe13 Avoid pid 0
XXX: pid allocation should not be done here.
2008-08-08 14:16:24 +00:00
pooka 541195ef5d Introduce ukfs_vfstypes() which returns the available file system
types loaded into rump.  Now it is possible to iterate over all
file system types supported by a rump program in an attempt to
access an unknown file system image instead of having to know
beforehand which type of file system is on the image.
2008-08-01 19:52:10 +00:00
pooka b6113580a4 __{BEGIN,END}_DECLS 2008-08-01 14:50:28 +00:00
pooka c19f1a2afd Support ukfs_modload(), which dlopens and vfs_attaches rump file
system modules for use.  Sneakily this solves the problem with the
dynamic linker not wanting to handle the modules link set for
binaries where more than one file system library is included during
the link phase and therefore only one of the file systems getting
vfs_attach()ed in rump "boot".  But more importantly, this is really
TRTTD, since now applications can be built, linked and shipped
completely independently of the file systems they support.

tested by Arnaud Ysmal
2008-08-01 14:47:28 +00:00
pooka e3c0c9ec57 No reason to forward def componentname anymore 2008-07-30 14:59:47 +00:00
pooka d2b954cb75 Include <sys/types.h> for completeness, uid_t etc. in prototypes
noticed by Arnaud Ysmal
2008-07-30 14:57:40 +00:00
pooka db96f8c4cc fix pasto 2008-07-29 21:11:17 +00:00