Commit Graph

59 Commits

Author SHA1 Message Date
pooka d35b86acad Don't include <rump/rumpvnode_if.h> from rump.h. It's not needed
unless you're doing something special, but requires register_t.
Adjust the few places which actually need rumpvnode_if.h.
2016-01-25 11:45:57 +00:00
christos 5521b51a7a fix error messages 2015-06-17 00:15:26 +00:00
pooka 27ec9b9d1d Add support for a byteswapped disklabel so that I can mount
NetBSD/sparc anita images on my i386.
2011-02-22 15:42:15 +00:00
pooka 3daddc031c rump_lwproc_newproc -> rump_lwproc_rfork 2011-01-02 13:01:45 +00:00
pooka 22b33166de rumpuser should not be included outside of the rump kernel (and
rumpuser itself)
2010-11-26 11:10:53 +00:00
pooka 607d9b612a Migrate from rump private interfaces to syscalls. 2010-09-07 17:16:18 +00:00
pooka cd52561abe update to new rump proc/lwp interfaces 2010-09-01 19:40:34 +00:00
pooka 55cb844525 convert to newstyle automagic rump compat syscalls 2010-07-19 15:35:38 +00:00
hannken 1423e65b26 Clean up vnode lock operations pass 2:
VOP_UNLOCK(vp, flags) -> VOP_UNLOCK(vp): Remove the unneeded flags argument.

Welcome to 5.99.32.

Discussed on tech-kern.
2010-06-24 12:58:48 +00:00
pooka 2734e549f0 Some _t purification. no functional change. 2010-04-14 14:15:48 +00:00
pooka b405c8d23e mfs is a bit off in the sense that mount(2) doesn't return since
mfs uses the mounting process for the backing store memory.  I
guess mfs could be fixed to just reference the process vmspace and
let it return, but that would probably cause wait() to return for
other worms.  So it's easier to dance according to mfs's tune: if
mounting mfs, create a thread for extra execution context.
2010-03-08 12:38:14 +00:00
pooka 05e0f1dba9 Update to use newstyle rump_module interfaces. 2010-03-05 18:49:30 +00:00
pooka 9bbaf71ba2 Refcount ukfs_part. Otherwise it's not possible to call ukfs_mount()
several times with only one ukfs_part_probe().
2009-12-13 20:52:36 +00:00
pooka 3048f9c8c7 fix error branch 2009-12-12 00:46:04 +00:00
pooka 262f83ce50 Use range locking (fnctl(F_SETLK)) instead of file locking (flock()).
This allows to mount multiple (non-overlapping) partitions from the
same disk image.
2009-12-11 21:20:52 +00:00
pooka 72e7011c7a Init ukfs__part_{na,none} statically instead of at runtime to avoid
init-order lossage from p2k/rump_smbfs, as noted by Tron.
2009-12-11 16:47:33 +00:00
pooka 0c29df1074 Improve the ukfs magicpath interface a bit:
* rename PART to DISKLABEL
* allow to take an OFFSET range to make it possible to access an image
  where there is no disklabel present
* make future extensions easier and less intrusive for the callers
2009-12-03 14:23:49 +00:00
njoly 978f600106 Add RTLD_LAZY to dlopen call, to make it work on Linux hosts.
ok by pooka.
2009-11-16 17:21:26 +00:00
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 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
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 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