Commit Graph

150 Commits

Author SHA1 Message Date
pooka
fbc989bbef Use linker script to make __start/stop_link_set_modules be present
in libs built with binutils >=2.19.  This is a less error-prone
method than the previous where components had to be tagged in the
Makefile as modules (and if they weren't, things broke.  and vice
versa).
2009-12-12 17:10:19 +00:00
pooka
071c062533 include components required by smbfs 2009-11-20 15:37:44 +00:00
pooka
d09e2773d0 "rumppriv" goes back to "rump" per internal interface naming change. 2009-10-14 18:18:53 +00:00
pooka
42972db848 Adjust rump sources for external/internal interfaces.
No functional change.
2009-10-14 17:29:19 +00:00
pooka
48b3a6f7a3 binutils 2.19 has changed the old behaviour of defining __start_SECTNAME
for orphaned sections to using PROVIDE.  What this means is that
unless a rump component internally references that symbol, it will
not be included in the component shared library, and hence cannot
be referenced when the component is loaded.  Add a workaround which
works both with 2.16 and 2.19: force a reference to the __start
symbol internally and hence retain it in the resulting library.
2009-09-13 22:51:41 +00:00
pooka
da73ba1e67 build & install librumpdev_netsmb and librumpfs_smbfs components 2009-09-04 17:21:33 +00:00
pooka
721430ffd9 rump smbfs component 2009-09-04 12:16:54 +00:00
pooka
bd8ebb811a install librumpfs_fdesc 2009-09-03 12:55:10 +00:00
pooka
9d98904e35 add fdesc fs rump lib
(don't descend in here by default, I don't want to deal with the
setlist pain for now)
2009-07-31 19:16:45 +00:00
reinoud
69a586f230 Import read-only part of the NiLFS (v2) implementation for NetBSD. It has been
tested with a DEBUG+DIAGNOSTIC+LOCKDEBUG kernel. To summerise NiLFS, i'll
repeat my posting to tech-kern here:

NiLFS stands for New implementation of Logging File System; LFS done
right they claim :) It is at version 2 now and is being developed by NTT, the
Japanese telecom company and recently put into the linux source tree. See
http://www.nilfs.org. The on-disc format is not completely frozen and i expect
at least one minor revision to come in time.

The benefits of NiLFS are build-in fine-grained checkpointing, persistent
snapshots, multiple mounts and very large file and media support. Every
checkpoint can be transformed into a snapshot and v.v. It is said to perform
very well on flash media since it is not overwriting pieces apart from a
incidental update of the superblock, but that might change. It is accompanied
by a cleaner to clean up the segments and recover lost space.

My work is not a port of the linux code; its a new implementation. Porting the
code would be more work since its very linux oriented and never written to be
ported outside linux. The goal is to be fully interchangable. The code is non
intrusive to other parts of the kernel. It is also very light-weight.

The current state of the code is read-only access to both clean and dirty
NiLFS partitions. On mounting a dirty partition it rolls forward the log to
the last checkpoint. Full read-write support is however planned!

Just as the linux code, mount_nilfs allows for the `head' to be mounted
read/write and allows multiple read-only snapshots/checkpoint mounts next to
it.

By allowing the RW mount at a different snapshot for read-write it should be
possible eventually to revert back to a previous state; i.e. try to upgrade a
system and being able to revert to the exact state prior to the upgrade.

Compared to other FS's its pretty light-weight, suitable for embedded use and
on flash media. The read-only code is currently 17kb object code on
NetBSD/i386. I doubt the read-write code will surpass the 50 or 60. Compared
this to FFS being 156kb, UDF being 84 kb and NFS being 130kb. Run-time memory
usage is most likely not very different from other uses though maybe a bit
higher than FFS.
2009-07-18 16:31:41 +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
e9d1ffe915 compile in snapshot code 2009-04-06 20:46:44 +00:00
cegger
df7f595ecd Ansify function definitions w/o arguments. Generated with sed. 2009-03-18 10:22:21 +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
d138dde9a0 --wrap=malloc, the issue was fixed. 2009-01-14 19:29:32 +00:00
pooka
a378ac816b Put syspuffs_glueinit in the rump kernel namespace. 2009-01-08 03:27:10 +00:00
pooka
3945d47397 Purge multiple kernel opt files. 2009-01-01 19:43:57 +00:00
pooka
8a1a1e1e27 * make features match those of the nfs module just to have them in-sync
* remove stubs.c since all are now provided by rumpnet
2008-12-29 23:17:42 +00:00
pooka
a768afd60b __KERNEL_RCSID 2008-12-18 00:24:12 +00:00
pooka
31b0163f0d Add nfs server rump library.
(not descended into on purpose)
2008-11-27 14:14:30 +00:00
pooka
35861926cc Link in a networking domain, required by nfs. 2008-11-27 11:31:59 +00:00
ad
92ce8c6a3d Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime
2008-11-19 18:35:57 +00:00
pooka
e10fef6cd2 Split vfs out of rumpkern into rumpvfs. Non-fs rumps no longer
include the file system code.  File system rumps explicitly need
to include rumpvfs from now on.
2008-11-19 14:10:48 +00:00
pooka
e349d81775 Tune CFLAGS to a consistent default. 2008-11-17 09:03:51 +00:00
christos
75e8ce56c6 revert stack protector change. 2008-10-16 19:35:07 +00:00
pooka
2690ed220b Ignore stack-protector, since with nfs_bio.c it gets its life force
drained out.  Yes, this is a quick kludge, should rather fix
nfs_bio.c to be less silly.
2008-10-16 19:06:40 +00:00
pooka
37b61acf1e * descend into rump/net
* descend into fs/lib/libnfs
2008-10-16 09:29:43 +00:00
pooka
47c581b572 nfs_boot calls some networking stack routines directly. Since rump
will not invoke nfs_boot in the foreseeable future, provide those
routines as stubs in case sockin is used instead of the real
networking stack.
2008-10-15 22:25:26 +00:00
pooka
2d1a1a1ecf Don't descend into rumptest automatically. Otherwise a manual
"make install" in this directory does some funnies.
2008-10-15 20:41:11 +00:00
pooka
cf82732ba2 Revert weird revivesa merge botch. (Hi Bill!) 2008-10-15 13:57:03 +00:00
wrstuden
fc7511b00e Merge wrstuden-revivesa into HEAD. 2008-10-15 06:51:17 +00:00
pooka
ea7f1c6709 check return value of rump_init() 2008-10-08 11:01:28 +00:00
pooka
f4ce96e86b check rump_init() return value 2008-10-07 23:22:05 +00:00
pooka
e15435197f Make libnfs compile. 2008-10-06 01:00:57 +00:00
reinoud
19eb6cb8aa Remove the not anymore used UDF_READWRITE flag. 2008-09-28 09:02:45 +00:00
pooka
aa224b94d6 fix broken break (oh the irony) 2008-09-05 10:42:09 +00:00
pooka
795cda8d6a Add rump support for sysvbfs. 2008-09-04 12:21:25 +00:00
pooka
827e91dd6f Make syspuffs mount code supply mount_syspuffs_parseargs() like
the other mount binaries do.  Now syspuffs can be used to run all
puffs file systems as utilities.  This includes fuse file systems
and becomes interesting with the fs-utils project.  We can now do
e.g. this:

  ReFUSE ntfs-3g:
golem> echo hello | fsu_write/fsu_write ntfs-3g puffs ~/img/ntfs.img dafile
golem> fsu_cat/fsu_cat ntfs-3g puffs ~/img/ntfs.img dafile
hello
golem>

  puffs sysctlfs:
golem> fsu_ls/fsu_ls mount_sysctlfs puffs sysctl -l ddb
total 0
-r-xr-xr-x  1 pooka  users  1 Sep  2 22:11 commandonenter
-r-xr-xr-x  1 pooka  users  2 Sep  2 22:11 fromconsole
-r-xr-xr-x  1 pooka  users  3 Sep  2 22:11 lines
-r-xr-xr-x  1 pooka  users  8 Sep  2 22:11 maxoff
-r-xr-xr-x  1 pooka  users  3 Sep  2 22:11 maxwidth
-r-xr-xr-x  1 pooka  users  2 Sep  2 22:11 onpanic
-r-xr-xr-x  1 pooka  users  3 Sep  2 22:11 radix
-r-xr-xr-x  1 pooka  users  2 Sep  2 22:11 tabstops
-r-xr-xr-x  1 pooka  users  2 Sep  2 22:11 tee_msgbuf

Same works for psshfs etcetc.

In other words, this provides total integration for "normal"
in-kernel file systems and puffs/fuse file systems on the ukfs
library level.

Note: implementation is still "first stab" and the fs-utils usage
will no doubt change.
2008-09-02 19:38:25 +00:00
pooka
4b9a5d92cf Since putter wants complete frames, make sure we can hand them to it. 2008-08-15 15:02:28 +00:00
pooka
7b679f625d Maintain consistency of naming between the rumpfs library name and
the MOUNT_FOOFS name.  Don't bother polluting the obsolete lists
with the original names since they were in only for a few days.
2008-08-05 14:42:03 +00:00
simonb
159018ab5b Enable "options APPLE_UFS". OK pooka@. 2008-08-05 13:16:27 +00:00
pooka
8f1eb24c9f libs don't need NOMAN 2008-08-04 14:35:24 +00:00
simonb
36d65f1138 Merge the simonb-wapbl branch. From the original branch commit:
Add Wasabi System's WAPBL (Write Ahead Physical Block Logging)
   journaling code.  Originally written by Darrin B. Jewell while
   at Wasabi and updated to -current by Antti Kantee, Andy Doran,
   Greg Oster and Simon Burge.

OK'd by core@, releng@.
2008-07-31 05:38:04 +00:00
pooka
9dbcf29c49 NOMAN 2008-07-29 14:00:01 +00:00
pooka
cd56ab5fbf Accidentally left behind: these live in src/lib now. 2008-07-29 13:50:24 +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
pooka
2ba62ba2c7 Not everyone is building from my yet uncommitted trees, so catchup
here also.

tip-of-the-hat to simonb
2008-07-28 16:27:29 +00:00
pooka
c8ccd39051 UKFS_UIOINIT() functionality has been provided for ages by rump
function interfaces, so remove the macro.
2008-07-27 16:12:23 +00:00
pooka
2d86f776af Make the previously library-internal "builddirs" an external interface:
ukfs_util_builddirs()

patch from Arnaud Ysmal
2008-07-22 20:02:16 +00:00
he
6512b04025 The build options for the library parts are mostly located in this
file.  So, in order to better support UPDATE builds, add a dependency
on this file for object files in subdirectories using this file.
2008-07-20 15:56:44 +00:00