Commit Graph

128 Commits

Author SHA1 Message Date
pooka
dd0604d344 Reflect removal of fs_nfs.h and -DNFS 2010-03-02 23:37:16 +00:00
pooka
5a03797ea6 While I like redundant computing, specifying each option just once
is generally enough.
2010-03-02 11:29:04 +00:00
pooka
643ba90bf0 Globally define -Wno-pointer-sign, as it has become a pointless
exercise of "add it to every Makefile individually".

XXX: should autosynchronize with the rest of the kernel buildflags
in sys/conf/Makefile.kern.inc.
2010-02-16 20:42:44 +00:00
pooka
97fada1858 remove -D__NetBSD__ (it's done globally now) 2010-02-16 20:34:03 +00:00
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
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
721430ffd9 rump smbfs component 2009-09-04 12:16:54 +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
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
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
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
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
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
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
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
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
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
pooka
1d89d2370c enable DIAGNOSTIC 2008-07-18 16:20:03 +00:00
pooka
3e3b9ce9de Deregister fakeblock path immediately after mount to get it
deregistered also in the case of an error.
2008-07-17 11:25:07 +00:00
pooka
76ee3b3a51 Sync data to baking storage in ukfs_write() 2008-07-16 15:44:11 +00:00
pooka
aa652b7453 Nuke the "-p" argument to ukfs_mkdir(). It's not a particularly
brilliant idea to provide that functionality at this level.
2008-07-15 16:21:19 +00:00
pooka
37d1079aad add ukfs_utimes() and ukfs_lutimes()
from Arnaud Ysmal
2008-07-07 09:07:18 +00:00
pooka
371212ff48 Add missing calls for attribute management (e.g. chown, stat).
[Incidentally, stat() won't work on non-NetBSD because of struct stat
binary layout difference and needs to be fixed some day]

from Arnaud Ysmal
2008-07-01 13:09:44 +00:00
pooka
d2e855d5a6 Fixes to build rump utilities as host binaries on Linux by removing
sys namespace pollution which has crept in.

Submitted in private mail by takemura, domain ca2.so-net.ne.jp
2008-07-01 12:33:32 +00:00
pooka
3129a376df Fix location of postcall() in ukfs_chdir().
from Arnaud Ysmal
2008-06-24 14:16:37 +00:00