Commit Graph

44 Commits

Author SHA1 Message Date
pooka
d33a80444e Simplify now that ukfs deals with being called from a thread which
already has a rump lwp context.
2010-09-07 17:22: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
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
388dad1711 no need to typecast in pathconf anymore 2010-06-07 11:23:07 +00:00
pooka
1cfb9937ae Pass VOP_PATHCONF to backend file server. inspired by njoly. 2010-06-06 22:46:17 +00:00
pooka
55a238165a support extended attributes 2010-05-21 10:52:17 +00:00
pooka
9a9b93d40a Initialize "hasdebug" default deterministically. 2010-05-20 00:13:02 +00:00
pooka
d16346a23e If P2K_DEBUG is given, also dump rump kernel event counters when
file system is unmounted.
2010-05-01 14:44:48 +00:00
pooka
30df4c9f8c If vfstype is MOUNT_RUMPFS, assume we don't actually want to mount
a file system, but attach to the root in the fs namespace of a rump
kernel.
2010-04-29 22:34:21 +00:00
pooka
2734e549f0 Some _t purification. no functional change. 2010-04-14 14:15:48 +00:00
pooka
3454464e10 Technically we're supposed to use flags from the RUMP_NAMEI namespace
instead of NAMEI directly.  Probably doesn't matter in practise,
since the chances of this running on non-NetBSD are low.  But make
it correct anyway.
2009-12-23 01:15:11 +00:00
pooka
81eb543b62 Use NAMEI_INRENAME to improve the situation with detecting on when
to save componentname instead of looking at SAVESTART.  Not perfect,
but better.  Also, try to be more forgiving of kernel bugs.
2009-12-23 01:11:39 +00:00
pooka
13777d56f1 Don't VOP_PUTPAGES(PGO_FREE) in inactive for tmpfs, since we now
(after some changes to rump) actually free those pages, leaving
the tmpfs vnode feeling quite empty.
(the purpose of the flush is to avoid double caching between the
rump kernel and puffs vfs layer)
2009-12-16 17:20:19 +00:00
pooka
a1c4673949 Adapt ukfs users to the new ukfs_part interface. 2009-12-03 14:27:16 +00:00
pooka
251fbb35dc Report actual group array size instead of 0 (which always gives back 0 grousp). 2009-11-20 14:24:58 +00:00
pooka
96ae77ca39 Add "wizardmode", which allows to specify the uid which is used to
access the file system instead of using the caller uid.  This is
useful for example when modifying the root fs image for an OS
installation without wanting to dance around as root on the host.

idspispopd
2009-11-20 14:11:38 +00:00
pooka
a37ccec12c Default "recycle" to false in inactive. File system drivers do
not always set it.
2009-10-19 17:34:07 +00:00
pooka
38a8ac9c61 Split init routines a bit more to allow for p2k init without having
to pass any real configuration data.  This benefits things like
rump_smbfs which need to init rump before running the userspace
mount routines (because they make rump system calls) but cannot
run p2k_setup() at that stage because it requires data provided by
the userspace mount routines.  And p2k_setup() in turn forks (to
detach), so it cannot be run after rump has been inited and threads
have been created.
2009-10-18 19:36:41 +00:00
pooka
dd0a0505f1 Implement abortop. 2009-10-17 23:20:15 +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
e0ace4590b Expand rump curlwp macro. 2009-10-13 20:06:38 +00:00
pooka
476b5ba667 Expose a separate mount and run interface for those servers which
want to perform actions after mounting.
2009-10-09 16:37:30 +00:00
pooka
a06931db70 puffs might call getattr after we decided to recycle node. protect. 2009-10-07 20:56:29 +00:00
pooka
0605ce2bd4 Provide p2k_run_diskfs(), which acts like p2k_run_fs(), but taps
into ukfs_mount_disk() instead of ukfs_mount()
2009-10-07 20:55:25 +00:00
pooka
b02819edcd don't double free p2m 2009-10-06 16:57:54 +00:00
pooka
5290e6c820 Give a p2k node an internal state. This allows us to do proper
reference counting and not release nodes based just on puffs'
impression of if they are free.

This also allows us to reclaim vnodes already in inactive if the
file system so desires.  Some file systems, most notably ffs, change
file state already in inactive.  This could lead to a deadlock in
the middle of inactive and reclaim if some other puffs operation
was processed in between (as exposed by haad's open(at) test
program).

Also, properly thread the componentname from lookup to the actual
vnode operation.  This required the changes the rump componentname
routines.  Yes, the rename case is truly mindbogglingly disgusting.
Puke for yourself.
2009-10-06 16:23:03 +00:00
pooka
6e1d010d65 supply proper flags to pager 2009-08-04 13:39:18 +00:00
pooka
d51d08a74d * catch up with the ukfs changes
* leave mounted fs reference counting totally up to le coq grande
  and simply force an unmount if the kernel has decided the mountpoint
  is not busy
2009-07-22 20:49:28 +00:00
pooka
25c0857635 Support mounting post-time_t rump file systems on a pre-time_t host. 2009-05-22 10:53:59 +00:00
pooka
55a30cc8cc make it possible to disable puffs caches 2009-05-03 20:26:42 +00:00
pooka
1e9fe794b0 rump_cred_destroy -> rump_cred_put 2009-05-03 17:10:20 +00:00
pooka
c69ace3c05 ARGSUSED makes lindt a happy camper 2009-04-02 09:30:41 +00:00
pooka
c67ff2932c Don't abort() if the kernel complains we supplied an invalid type
for lookup, as this most likely means that the fs has some bad file
on it.  Rather, just flag an error to the user and be happy.
2009-03-26 14:03:30 +00:00
ad
59fcf21389 PR kern/26878 FFSv2 + softdep = livelock (no free ram)
PR kern/16942 panic with softdep and quotas
PR kern/19565 panic: softdep_write_inodeblock: indirect pointer #1 mismatch
PR kern/26274 softdep panic: allocdirect_merge: ...
PR kern/26374 Long delay before non-root users can write to softdep partitions
PR kern/28621 1.6.x "vp != NULL" panic in ffs_softdep.c:4653 while unmounting a softdep (+quota) filesystem
PR kern/29513 FFS+Softdep panic with unfsck-able file-corruption
PR kern/31544 The ffs softdep code appears to fail to write dirty bits to disk
PR kern/31981 stopping scsi disk can cause panic (softdep)
PR kern/32116 kernel panic in softdep (assertion failure)
PR kern/32532 softdep_trackbufs deadlock
PR kern/37191 softdep: locking against myself
PR kern/40474 Kernel panic after remounting raid root with softdep

Retire softdep, pass 2. As discussed and later formally announced on the
mailing lists.
2009-02-22 20:28:05 +00:00
pooka
53b8d59800 If P2K_NODETACH is set in the env, do not .. well .. detach. 2009-02-10 14:36:19 +00:00
pooka
710e4c1a30 Defer ukfs (and hence rump) init until after detaching from console.
Otherwise forking when detaching will nuke our potential precious
threads.
2008-12-12 19:50:27 +00:00
pooka
02d2ab30dc Detach from console by default unless P2K_DEBUG is set in the
environment.  We can't pass this as a flag, since rump_foo should
remain usage-compatible with mount_foo and therefore can't accept
puffs flags as command line parameters.
2008-11-14 13:43:20 +00:00
pooka
eadc5f75ae check ukfs_init() return value 2008-10-07 23:14:58 +00:00
pooka
49d75a288d Do not clear curlwp after request if we have unmounted. This avoids
an annoying side effect of the reference counting nightmare, namely
trying to vrele() a recently-ceased-to-be cwd.
2008-09-30 17:18:46 +00:00
pooka
3fd391abc8 void * -> puffs_cookie_t
no functional change
2008-08-12 19:51:55 +00:00
pooka
6fe369e772 Nuke __VFSOPS_EXPOSE, it hasn't been used in ages. 2008-07-30 18:10:38 +00:00
pooka
bdf6e0b034 Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
  * install relevant headers into /usr/include/rump
  * build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
    from src/lib and install as librumpuser and librump, respectively
    + this retains the ability to test a librump build with just the
      kernel sources at hand
  * move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
    for general consumption, they are not kernel-space dwellers anyway
  * build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
  * add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
  * build and install userspace kernel file system daemons if MKPUFFS=yes
    is spexified
  * retire fsconsole for now, it will make a comeback with an actually
    implemented version shortly
2008-07-29 13:17:40 +00:00