The NetBSD Project

CVS log for src/sys/fs/puffs/puffs_vfsops.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / fs / puffs

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.110 / (download) - annotate - [select for diffs], Wed Apr 16 18:55:18 2014 UTC (3 days, 1 hour ago) by maxv
Branch: MAIN
CVS Tags: HEAD
Changes since 1.109: +4 -8 lines
Diff to previous 1.109 (colored)

An (un)privileged user can easily make the kernel dereference a NULL
pointer.

The kernel allows 'data' to be NULL; it's the fs's responsibility to
ensure that it isn't NULL (if the fs actually needs data).

ok christos@

Revision 1.109 / (download) - annotate - [select for diffs], Sun Mar 23 15:21:15 2014 UTC (3 weeks, 6 days ago) by hannken
Branch: MAIN
CVS Tags: tls-earlyentropy-base, tls-earlyentropy, riastradh-xf86-video-intel-2-7-1-pre-2-21-15
Changes since 1.108: +23 -27 lines
Diff to previous 1.108 (colored)

Change all vfsops to use C99 designated initializers.

No functional changes intended.

Revision 1.108 / (download) - annotate - [select for diffs], Mon Mar 17 09:36:34 2014 UTC (4 weeks, 5 days ago) by hannken
Branch: MAIN
CVS Tags: riastradh-drm2-base3
Changes since 1.107: +15 -32 lines
Diff to previous 1.107 (colored)

Change pageflush() to use vfs_vnode_iterator.

Revision 1.106.2.1 / (download) - annotate - [select for diffs], Mon Feb 25 00:29:48 2013 UTC (13 months, 3 weeks ago) by tls
Branch: tls-maxphys
Changes since 1.106: +3 -3 lines
Diff to previous 1.106 (colored) next main 1.107 (colored)

resync with head

Revision 1.100.2.3 / (download) - annotate - [select for diffs], Wed Jan 23 00:06:20 2013 UTC (14 months, 3 weeks ago) by yamt
Branch: yamt-pagecache
Changes since 1.100.2.2: +3 -3 lines
Diff to previous 1.100.2.2 (colored) to branchpoint 1.100 (colored) next main 1.101 (colored)

sync with head

Revision 1.107 / (download) - annotate - [select for diffs], Wed Jan 16 21:10:14 2013 UTC (15 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-pagecache-base8, tls-maxphys-base, rmind-smpnet-nbase, rmind-smpnet-base, rmind-smpnet, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, khorben-n900, agc-symver-base, agc-symver
Changes since 1.106: +3 -3 lines
Diff to previous 1.106 (colored)

Do the protocol consistency check hack only when compiling ELF.

Revision 1.100.2.2 / (download) - annotate - [select for diffs], Tue Oct 30 17:22:24 2012 UTC (17 months, 2 weeks ago) by yamt
Branch: yamt-pagecache
Changes since 1.100.2.1: +6 -4 lines
Diff to previous 1.100.2.1 (colored) to branchpoint 1.100 (colored)

sync with head

Revision 1.100.8.2 / (download) - annotate - [select for diffs], Sun Aug 12 13:13:21 2012 UTC (20 months ago) by martin
Branch: netbsd-6
CVS Tags: netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus
Changes since 1.100.8.1: +4 -2 lines
Diff to previous 1.100.8.1 (colored) to branchpoint 1.100 (colored) next main 1.101 (colored)

Pull up following revision(s) (requested by manu in ticket #438):
	lib/libperfuse/perfuse_priv.h: revision 1.31
	sys/fs/puffs/puffs_msgif.h: revision 1.80
	sys/fs/puffs/puffs_vnops.c: revision 1.171
	lib/libpuffs/puffs_ops.3: revision 1.31
	sys/fs/puffs/puffs_vnops.c: revision 1.172
	sys/fs/puffs/puffs_vnops.c: revision 1.173
	sys/fs/puffs/puffs_vnops.c: revision 1.174
	usr.sbin/perfused/perfused.c: revision 1.24
	sys/fs/puffs/puffs_sys.h: revision 1.80
	sys/fs/puffs/puffs_sys.h: revision 1.81
	sys/fs/puffs/puffs_sys.h: revision 1.82
	lib/libperfuse/subr.c: revision 1.19
	lib/libperfuse/perfuse.c: revision 1.30
	sys/fs/puffs/puffs_msgif.c: revision 1.90
	sys/fs/puffs/puffs_msgif.c: revision 1.91
	sys/fs/puffs/puffs_msgif.c: revision 1.92
	lib/libperfuse/ops.c: revision 1.59
	lib/libpuffs/puffs.3: revision 1.53
	lib/libperfuse/debug.c: revision 1.12
	lib/libpuffs/puffs.3: revision 1.54
	sys/fs/puffs/puffs_vnops.c: revision 1.167
	sys/fs/puffs/puffs_msgif.h: revision 1.79
	usr.sbin/perfused/msg.c: revision 1.21
	sys/fs/puffs/puffs_vfsops.c: revision 1.102
	sys/fs/puffs/puffs_vfsops.c: revision 1.103
	sys/fs/puffs/puffs_vfsops.c: revision 1.105
	lib/libpuffs/puffs.h: revision 1.123
	lib/libperfuse/perfuse_if.h: revision 1.20
	lib/libperfuse/perfuse.c: revision 1.29
	lib/libpuffs/dispatcher.c: revision 1.42
	lib/libpuffs/dispatcher.c: revision 1.43
- Fix same vnodes associated with multiple cookies
The scheme used to retreive known nodes on lookup was flawed, as it only
used parent and name. This produced a different cookie for the same file
if it was renamed, when looking up ../ or when dealing with multiple files
associated with the same name through link(2).
We therefore abandon the use of node name and introduce hashed lists of
inodes. This causes a huge rewrite of reclaim code, which do not attempt
to keep parents allocated until all their children are reclaimed
- Fix race conditions in reclaim
There are a few situations where we issue multiple FUSE operations for
a PUFFS operation. On reclaim, we therefore have to wait for all FUSE
operation to complete, not just the current exchanges. We do this by
introducing node reference count with node_ref() and node_rele().
- Detect data loss caused by FAF
VOP_PUTPAGES causes FAF writes where the kernel does not check the
operation result. At least issue a warning on error.
- Enjoy FAF shortcut on setattr
No need to wait for the result if the kernel does not want it. There is
however an exception for setattr that touch the size, we need to wait
for completion because we have other operations queued for after the
resize.
- Fix fchmod() on write-open file
fchmod() on a node open with write privilege will send setattr with both mode
and size set. This confuses some FUSE filesystem. Therefore we send two FUSE
operations, one for mode, and one for size.
- Remove node TTL handling for netbsd-5 for simplicity sake. The code
still builds on netbsd-5 but does not have the node TTL feature anymore.
It works fine with kernel support on netbsd-6.
- Improve PUFFS_KFLAG_CACHE_FS_TTL by reclaiming older inactive nodes.
The normal kernel behavior is to retain inactive nodes in the freelist
until it runs out of vnodes. This has some merit for local filesystems,
where the cost of an allocation is about the same as the cost of a
lookup. But that situation is not true for distributed filesystems.
On the other hand, keeping inactive nodes for a long time hold memory
in the file server process, and when the kernel runs out of vnodes, it
produce reclaim avalanches that increase lattency for other operations.
We do not reclaim inactive vnodes immediatly either, as they may be
looked up again shortly. Instead we introduce a grace time and we
reclaim nodes that have been inactive beyond the grace time.
- Fix lookup/reclaim race condition.
The above improvement undercovered a race condition between lookup and
reclaim. If we reclaimed a vnode associated with a userland cookie while
a lookup returning that same cookiewas inprogress, then the kernel ends
up with a vnode associated with a cookie that has been reclaimed in
userland. Next operation on the cookie will crash (or at least confuse)
the filesystem.
We fix this by introducing a lookup count in kernel and userland. On
reclaim, the kernel sends the count, which enable userland to detect
situation where it initiated a lookup that is not completed in kernel.
In such a situation, the reclaim must be ignored, as the node is about
to be looked up again.
Fix hang unmount bug introduced by last commit.
We introduced a slow queue for delayed reclaims, while the existing
queue for unmount, flush and exist has been renamed fast queue. Both
queues had timestamp for when an operation should be done, but it was
useless for the fast queue, which is always used to run an operation
ASAP. And the timestamp test had an error that turned ASAP into "at next
tick", but nobody what there to wake the thread at next tick, hence
the hang. The fix is to remove the useless and buggy timestamp test for
fast queue.
Rename slow sopreq queue into node sopreq queue, to refet the fact that
is only intended for postponed node reclaims.
When purging the node sopreq queue, do not call puffs_msg_sendresp(), as
it makes no sense.
Fix race condition between (create|mknod|mkdir|symlino) and reclaim, just
like we did it between lookup and reclaim.
Missing bit in previous commit (prevent race between create|mknod|mkdir|symlink
and reclaim)
Bump date for previous.
New sentence, new line; remove trailing whitespace; fix typos;
punctuation nits.
Add PUFFS_KFLAG_CACHE_DOTDOT so that vnodes hold a reference on their
parent, keeping them active, and allowing to lookup .. without sending
a request to the filesystem.
Enable the featuure for perfused, as this is how FUSE works.
Missing bit in previous commit (PUFFS_KFLAG_CACHE_DOTDOT option to avoid
looking up ..)

Revision 1.106 / (download) - annotate - [select for diffs], Thu Aug 9 07:46:18 2012 UTC (20 months, 1 week ago) by manu
Branch: MAIN
CVS Tags: yamt-pagecache-base7, yamt-pagecache-base6
Branch point for: tls-maxphys
Changes since 1.105: +2 -16 lines
Diff to previous 1.105 (colored)

Backout previous bugfix attempt for unmounts. That changes did not
address the real problem.

Revision 1.105 / (download) - annotate - [select for diffs], Fri Jul 27 07:38:44 2012 UTC (20 months, 3 weeks ago) by manu
Branch: MAIN
Changes since 1.104: +3 -3 lines
Diff to previous 1.104 (colored)

Rename slow sopreq queue into node sopreq queue, to refet the fact that
is only intended for postponed node reclaims.
When purging the node sopreq queue, do not call puffs_msg_sendresp(), as
it makes no sense.

Revision 1.104 / (download) - annotate - [select for diffs], Fri Jul 27 07:25:56 2012 UTC (20 months, 3 weeks ago) by manu
Branch: MAIN
Changes since 1.103: +16 -2 lines
Diff to previous 1.103 (colored)

puffs mounts share global pools. This means that the puffs_vfsops cannot
be vfs_detach'ed by module autounload before puffs_vfsop_unmount() completes
and has freed ressource from the pools. By holding a reference on
puffs_vfsops from each mount, we ensure that no race can occur here.

Works around the crash in kern/46734

Revision 1.103 / (download) - annotate - [select for diffs], Sun Jul 22 17:40:46 2012 UTC (20 months, 3 weeks ago) by manu
Branch: MAIN
Changes since 1.102: +2 -3 lines
Diff to previous 1.102 (colored)

Fix hang unmount bug introduced by last commit.

We introduced a slow queue for delayed reclaims, while the existing
queue for unmount, flush and exist has been renamed fast queue. Both
queues had timestamp for when an operation should be done, but it was
useless for the fast queue, which is always used to run an operation
ASAP. And the timestamp test had an error that turned ASAP into "at next
tick", but nobody what there to wake the thread at next tick, hence
the hang. The fix is to remove the useless and buggy timestamp test for
fast queue.

Revision 1.102 / (download) - annotate - [select for diffs], Sat Jul 21 05:17:11 2012 UTC (20 months, 4 weeks ago) by manu
Branch: MAIN
Changes since 1.101: +7 -4 lines
Diff to previous 1.101 (colored)

- Improve PUFFS_KFLAG_CACHE_FS_TTL by reclaiming older inactive nodes.

The normal kernel behavior is to retain inactive nodes in the freelist
until it runs out of vnodes. This has some merit for local filesystems,
where the cost of an allocation is about the same as the cost of a
lookup. But that situation is not true for distributed filesystems.
On the other hand, keeping inactive nodes for a long time hold memory
in the file server process, and when the kernel runs out of vnodes, it
produce reclaim avalanches that increase lattency for other operations.

We do not reclaim inactive vnodes immediatly either, as they may be
looked up again shortly. Instead we introduce a grace time and we
reclaim nodes that have been inactive beyond the grace time.

- Fix lookup/reclaim race condition.

The above improvement undercovered a race condition between lookup and
reclaim. If we reclaimed a vnode associated with a userland cookie while
a lookup returning that same cookiewas inprogress, then the kernel ends
up with a vnode associated with a cookie that has been reclaimed in
userland. Next operation on the cookie will crash (or at least confuse)
the filesystem.

We fix this by introducing a lookup count in kernel and userland. On
reclaim, the kernel sends the count, which enable userland to detect
situation where it initiated a lookup that is not completed in kernel.
In such a situation, the reclaim must be ignored, as the node is about
to be looked up again.

Revision 1.100.6.1 / (download) - annotate - [select for diffs], Sun Apr 29 23:05:03 2012 UTC (23 months, 2 weeks ago) by mrg
Branch: jmcneill-usbmp
Changes since 1.100: +5 -2 lines
Diff to previous 1.100 (colored) next main 1.101 (colored)

sync to latest -current.

Revision 1.100.8.1 / (download) - annotate - [select for diffs], Mon Apr 23 16:49:01 2012 UTC (23 months, 3 weeks ago) by riz
Branch: netbsd-6
Changes since 1.100: +5 -2 lines
Diff to previous 1.100 (colored)

Pull up following revision(s) (requested by manu in ticket #195):
	lib/libskey/skeysubr.c: revision 1.27
	lib/libkvm/kvm_getloadavg.c: revision 1.11
	lib/libwrap/update.c: revision 1.9
	lib/liby/yyerror.c: revision 1.9
	lib/libpuffs/puffs_ops.3: revision 1.30
	lib/libwrap/misc.c: revision 1.10
	lib/libwrap/hosts_access.c: revision 1.20
	lib/libpuffs/pnode.c: revision 1.11
	lib/libperfuse/subr.c: revision 1.17
	lib/libpuffs/pnode.c: revision 1.12
	lib/libperfuse/subr.c: revision 1.18
	lib/libwrap/options.c: revision 1.15
	lib/libwrap/fix_options.c: revision 1.11
	lib/libperfuse/ops.c: revision 1.52
	lib/libperfuse/ops.c: revision 1.53
	lib/libperfuse/ops.c: revision 1.54
	lib/libwrap/hosts_ctl.c: revision 1.5
	lib/libintl/gettext.c: revision 1.27
	lib/libwrap/shell_cmd.c: revision 1.6
	lib/libpuffs/dispatcher.c: revision 1.39
	lib/libperfuse/perfuse_priv.h: revision 1.27
	lib/libwrap/socket.c: revision 1.19
	lib/libpuffs/puffs.3: revision 1.50
	lib/libperfuse/perfuse_priv.h: revision 1.28
	lib/libpuffs/puffs_priv.h: revision 1.45
	lib/libpuffs/puffs.3: revision 1.51
	lib/libperfuse/perfuse_priv.h: revision 1.29
	lib/libwrap/percent_x.c: revision 1.5
	lib/libpuffs/puffs.3: revision 1.52
	lib/libperfuse/debug.c: revision 1.11
	sys/fs/puffs/puffs_vnops.c: revision 1.165
	lib/libwrap/tcpd.h: revision 1.13
	sys/fs/puffs/puffs_vnops.c: revision 1.166
	lib/libwrap/eval.c: revision 1.7
	sys/fs/puffs/puffs_msgif.h: revision 1.78
	sys/fs/puffs/puffs_vfsops.c: revision 1.101
	lib/libwrap/rfc931.c: revision 1.9
	lib/libwrap/clean_exit.c: revision 1.5
	lib/libpuffs/puffs.h: revision 1.120
	lib/libc/stdlib/jemalloc.c: revision 1.27
	lib/librmt/rmtlib.c: revision 1.26
	lib/libpuffs/puffs.h: revision 1.121
	sys/fs/puffs/puffs_sys.h: revision 1.79
	lib/librumpclient/rumpclient.c: revision 1.48
	lib/libwrap/refuse.c: revision 1.5
	lib/libperfuse/perfuse.c: revision 1.26
	lib/libperfuse/perfuse.c: revision 1.27
	tests/fs/puffs/t_fuzz.c: revision 1.5
	lib/libperfuse/perfuse.c: revision 1.28
	lib/libpuffs/dispatcher.c: revision 1.40
	sys/fs/puffs/puffs_node.c: revision 1.24
	lib/libwrap/diag.c: revision 1.9
	lib/libintl/textdomain.c: revision 1.13
Use C89 function definition
Add name and atttribute cache with filesytem provided TTL.
lookup, create, mknod, mkdir, symlink, getattr and setattr messages
have been extended so that attributes and their TTL can be provided
by the filesytem. lookup, create, mknod, mkdir, and symlink messages
are also extended so that the filesystem can provide name TTL.
Add PUFFS_KFLAG_CACHE_FS_TTL flag to puffs_init(3) to use name and
attribute cache with filesystem provided TTL.
lookup, create, mknod, mkdir, symlink, getattr and setattr messages
have been extended so that attributes and their TTL can be provided
by the filesytem. lookup, create, mknod, mkdir, and symlink messages
are also extended so that the filesystem can provide name TTL.
The filesystem updates attributes and TTL using
puffs_pn_getvap(3), puffs_pn_getvattl(3), and puffs_pn_getcnttl(3)
Use new PUFFS_KFLAG_CACHE_FS_TTL option to puffs_init(3) so that
FUSE TTL on name and attributes are used. This save many PUFFS
operations and improves performances.
PUFFS_KFLAG_CACHE_FS_TTL is #ifdef'ed in many places for now so that
libperfuse can still be used on netbsd-5.
Split file system.
Comma fixes.
Remove dangling "and".
Bump date for previous.
- Makesure update_va does not change vnode size when it should not. For
instance when doing a fault-issued VOP_GETPAGES within VOP_WRITE, changing
size leads to panic: genfs_getpages: past eof.
-Handle ticks wrap around for vnode name andattribute timeout
- When using PUFFS_KFLAG_CACHE_FS_TTL, do not use puffs_node to carry
  attribute and TTL fora newly created node. Instead extend puffs_newinfo
  and add puffs_newinfo_setva() and puffs_newinfo_setttl()
- Remove node_mk_common_final in libperfuse. It used to set uid/gid for
  a newly created vnode but has been made redundant along time ago since
  uid and gid are properly set in FUSE header.
- In libperfuse, check for corner case where opc = 0 on INACTIVE and   RECLAIM
(how is it possible? Check for it to avoid a crash anyway)
- In libperfuse, make sure we unlimit RLIMIT_AS and RLIMIT_DATA so that
  we do notrun out of memory because the kernel is lazy at reclaiming vnodes.
- In libperfuse, cleanup style of perfuse_destroy_pn()
Do not set PUFFS_KFLAG_CACHE_FS_TTL for PUFFS tests

Revision 1.100.2.1 / (download) - annotate - [select for diffs], Tue Apr 17 00:08:19 2012 UTC (2 years ago) by yamt
Branch: yamt-pagecache
Changes since 1.100: +5 -2 lines
Diff to previous 1.100 (colored)

sync with head

Revision 1.101 / (download) - annotate - [select for diffs], Sun Apr 8 15:04:41 2012 UTC (2 years ago) by manu
Branch: MAIN
CVS Tags: yamt-pagecache-base5, yamt-pagecache-base4, jmcneill-usbmp-base9, jmcneill-usbmp-base10
Changes since 1.100: +5 -2 lines
Diff to previous 1.100 (colored)

Add name and atttribute cache with filesytem provided TTL.
lookup, create, mknod, mkdir, symlink, getattr and setattr messages
have been extended so that attributes and their TTL can be provided
by the filesytem. lookup, create, mknod, mkdir, and symlink messages
are also extended so that the filesystem can provide name TTL.

Revision 1.81.8.3 / (download) - annotate - [select for diffs], Wed Nov 2 20:11:12 2011 UTC (2 years, 5 months ago) by riz
Branch: netbsd-5
CVS Tags: netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2
Changes since 1.81.8.2: +9 -4 lines
Diff to previous 1.81.8.2 (colored) to branchpoint 1.81 (colored) next main 1.82 (colored)

Pull up following revision(s) (requested by manu in ticket #1679):
	sys/fs/puffs/puffs_vnops.c: revision 1.157
	sys/fs/puffs/puffs_vnops.c: revision 1.158
	sys/fs/puffs/puffs_vnops.c: revision 1.159
	sys/fs/puffs/puffs_vfsops.c: revision 1.97
	sys/fs/puffs/puffs_vfsops.c: revision 1.99
	sys/fs/puffs/puffs_vnops.c: revision 1.160
	sys/fs/puffs/puffs_vfsops.c: revision 1.100
	sys/miscfs/syncfs/sync_subr.c: revision 1.47
	sys/fs/puffs/puffs_node.c: revision 1.21
	sys/fs/puffs/puffs_node.c: revision 1.22
	sys/fs/puffs/puffs_msgif.c: revision 1.88
	sys/fs/puffs/puffs_msgif.c: revision 1.89
	sys/fs/puffs/puffs_vnops.c: revision 1.156
Make sure ioflush does not sleep in PUFFS code path, waiting for a mutex,
a memory allocation, or a response from the filesystem.
This avoids deadlocks in the following situations:
1) when memory is low: ioflush waits the fileystem, the fielsystem waits
   for memory
2) when the filesystem does not respond (e.g.: network outage ona
   distributed filesystem)
Fix the build that was broken by struct lwp *updateproc reference in
RUMP-visible code. Instead of checking that updateproc (aka ioflush,
aka syncer) will not sleep in PUFFS code, I check for any kernel thread:
after all none of them are designed to hang awaiting for a remote filesystem
operation to complete.
Roll back the change that forced kernel threads to not sleep in PUFFS.
The change does not make consensus, since only pagedaemon should need it.
Other threads will tolerate sleeping, and problems here are only symptoms
that something is going wrong in memory management. The cause, not the
symptoms, need to be fixed.
Make sure pagedaemon does not sleep for memory in puffs_vnop_sleep.
Add KASSERT on any sleeping memory allocation to check it cannot happen again.
Remove #ifdef DIAGNOSTIC guards around KASSERT, as the macro contains them

Revision 1.100 / (download) - annotate - [select for diffs], Wed Oct 19 01:39:29 2011 UTC (2 years, 6 months ago) by manu
Branch: MAIN
CVS Tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, netbsd-6-base, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base, jmcneill-audiomp3-base, jmcneill-audiomp3
Branch point for: yamt-pagecache, netbsd-6, jmcneill-usbmp
Changes since 1.99: +0 -4 lines
Diff to previous 1.99 (colored)

Remove #ifdef DIAGNOSTIC guards around KASSERT, as the macro contains them

Revision 1.99 / (download) - annotate - [select for diffs], Tue Oct 18 15:39:09 2011 UTC (2 years, 6 months ago) by manu
Branch: MAIN
Changes since 1.98: +10 -2 lines
Diff to previous 1.98 (colored)

Make sure pagedaemon does not sleep for memory in puffs_vnop_sleep.
Add KASSERT on any sleeping memory allocation to check it cannot happen again.

Revision 1.98 / (download) - annotate - [select for diffs], Fri Oct 7 09:35:05 2011 UTC (2 years, 6 months ago) by hannken
Branch: MAIN
Changes since 1.97: +3 -4 lines
Diff to previous 1.97 (colored)

As vnalloc() always allocates with PR_WAITOK there is no longer the need
to test its result for NULL.

Revision 1.97 / (download) - annotate - [select for diffs], Wed Sep 21 15:36:33 2011 UTC (2 years, 6 months ago) by manu
Branch: MAIN
Changes since 1.96: +5 -4 lines
Diff to previous 1.96 (colored)

Make sure ioflush does not sleep in PUFFS code path, waiting for a mutex,
a memory allocation, or a response from the filesystem.

This avoids deadlocks in the following situations:
1) when memory is low: ioflush waits the fileystem, the fielsystem waits
   for memory
2) when the filesystem does not respond (e.g.: network outage ona
   distributed filesystem)

Revision 1.81.8.2 / (download) - annotate - [select for diffs], Sun Jul 17 15:36:03 2011 UTC (2 years, 9 months ago) by riz
Branch: netbsd-5
Changes since 1.81.8.1: +53 -3 lines
Diff to previous 1.81.8.1 (colored) to branchpoint 1.81 (colored)

Pull up following revision(s) (requested by manu in ticket #1645):
lib/libc/sys/Makefile.inc                       1.207 via patch
lib/libc/sys/extattr_get_file.2                 patch
lib/libpuffs/dispatcher.c                       1.34,1.36 via patch
lib/libpuffs/puffs.c                            1.107 via patch
lib/libpuffs/puffs.h                            1.115,1.118 via patch
sys/fs/puffs/puffs_msgif.h                      1.71,1.76 via patch
sys/fs/puffs/puffs_vfsops.c                     1.88 via patch
sys/fs/puffs/puffs_vnops.c                      1.145,1.154 via patch
sys/kern/vfs_xattr.c                            1.24-1.27 via patch
sys/kern/vnode_if.c                             1.87 via patch
sys/sys/Makefile                                1.133 via patch
sys/sys/extattr.h                               1.6 via patch
sys/sys/vnode_if.h                              1.81 via patch
sys/ufs/ffs/ffs_vnops.c                         patch
sys/ufs/ufs/ufs_extattr.c                       1.31,1.34 via patch

* support extended attributes
* bump major due to structure growth
* add some spare space
* remove ABI sillyness
Support extended attributes.
Fix multiple non compliances in our Linux-like extattr API, and make it
public so that it can be used.
Improve a bit listxattr(2). It attemps to list both system and user
extended attributes, and it faled if calling user did not have privilege
for reading system EA. Now we just lise user EA and skip system EA in
reading them is not allowed.
Fix bug introduced in previous commuit: Do not vrele() a vnode we did not
obtained.
Improve UFS1 extended attributes usability
- autocreate attribute backing file for new attributes
- autoload attributes when issuing extattrctl start
- when autoloading attributes, do not display garbage warning when looking
up entries that got ENOENT
Add a flag to VOP_LISTEXTATTR(9) so that the vnode interface can tell the
filesystem in which format extended attribute shall be listed.
There are currently two formats:
- NUL-terminated strings, used for listxattr(2), this is the default.
- one byte length-pprefixed, non NUL-terminated strings, used for
  extattr_list_file(2), which is obtanined by setting the
  EXTATTR_LIST_PREFIXLEN flag to VOP_LISTEXTATTR(9)
This approach avoid the need for converting the list back and forth, except
in libperfuse, since FUSE uses NUL-terminated strings, and the kernel may
have requested EXTATTR_LIST_PREFIXLEN.

Revision 1.95.6.1 / (download) - annotate - [select for diffs], Thu Jun 23 14:20:16 2011 UTC (2 years, 9 months ago) by cherry
Branch: cherry-xenmp
Changes since 1.95: +8 -8 lines
Diff to previous 1.95 (colored) next main 1.96 (colored)

Catchup with rmind-uvmplock merge.

Revision 1.96 / (download) - annotate - [select for diffs], Sun Jun 12 03:35:54 2011 UTC (2 years, 10 months ago) by rmind
Branch: MAIN
Changes since 1.95: +8 -8 lines
Diff to previous 1.95 (colored)

Welcome to 5.99.53!  Merge rmind-uvmplock branch:

- Reorganize locking in UVM and provide extra serialisation for pmap(9).
  New lock order: [vmpage-owner-lock] -> pmap-lock.

- Simplify locking in some pmap(9) modules by removing P->V locking.

- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share
  the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).

- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner.
  Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.

- Unify /dev/mem et al in MI code and provide required locking (removes
  kernel-lock on some ports).  Also, avoid cache-aliasing issues.

Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches
formed the core changes of this branch.

Revision 1.87.2.4 / (download) - annotate - [select for diffs], Sat Mar 5 20:55:08 2011 UTC (3 years, 1 month ago) by rmind
Branch: rmind-uvmplock
Changes since 1.87.2.3: +24 -3 lines
Diff to previous 1.87.2.3 (colored) to branchpoint 1.87 (colored) next main 1.88 (colored)

sync with head

Revision 1.86.2.2 / (download) - annotate - [select for diffs], Tue Aug 17 06:47:20 2010 UTC (3 years, 8 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.86.2.1: +75 -6 lines
Diff to previous 1.86.2.1 (colored) to branchpoint 1.86 (colored) next main 1.87 (colored)

Sync with HEAD.

Revision 1.78.10.4 / (download) - annotate - [select for diffs], Wed Aug 11 22:54:35 2010 UTC (3 years, 8 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.78.10.3: +77 -8 lines
Diff to previous 1.78.10.3 (colored) to branchpoint 1.78 (colored) next main 1.79 (colored)

sync with head.

Revision 1.95 / (download) - annotate - [select for diffs], Wed Jul 21 17:52:10 2010 UTC (3 years, 8 months ago) by hannken
Branch: MAIN
CVS Tags: yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base4, uebayasi-xip-base3, uebayasi-xip-base2, rmind-uvmplock-nbase, rmind-uvmplock-base, matt-mips64-premerge-20101231, jruoho-x86intr-base, jruoho-x86intr, cherry-xenmp-base, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Branch point for: cherry-xenmp
Changes since 1.94: +3 -3 lines
Diff to previous 1.94 (colored)

Make holding v_interlock mandatory for callers of vget().

Announced some time ago on tech-kern.

Revision 1.94 / (download) - annotate - [select for diffs], Thu Jul 15 21:55:05 2010 UTC (3 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.93: +3 -2 lines
Diff to previous 1.93 (colored)

f_namemax is one of the static fields overridden by copy_statvfs_info(),
so be sure to set it to the value coming from the file server as
part of mount args.

exposed, like so many other problems, by njoly's tests

Revision 1.93 / (download) - annotate - [select for diffs], Tue Jul 6 13:47:47 2010 UTC (3 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.92: +3 -2 lines
Diff to previous 1.92 (colored)

Add compat to enable running puffs in a 64bit time_t kernel against
a server which runs in 32bit time_t namespace.

Revision 1.92 / (download) - annotate - [select for diffs], Tue Jul 6 12:28:40 2010 UTC (3 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.91: +12 -2 lines
Diff to previous 1.91 (colored)

ctassert size of some key structures does not change

Revision 1.91 / (download) - annotate - [select for diffs], Tue Jul 6 12:05:18 2010 UTC (3 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.90: +11 -2 lines
Diff to previous 1.90 (colored)

Make sure that pa_spare is zero-filled and does not contain any
garbage which might disrupt future use.

Revision 1.87.2.3 / (download) - annotate - [select for diffs], Sat Jul 3 01:19:51 2010 UTC (3 years, 9 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.87.2.2: +3 -3 lines
Diff to previous 1.87.2.2 (colored) to branchpoint 1.87 (colored)

sync with head

Revision 1.90 / (download) - annotate - [select for diffs], Thu Jun 24 13:03:10 2010 UTC (3 years, 9 months ago) by hannken
Branch: MAIN
Changes since 1.89: +3 -3 lines
Diff to previous 1.89 (colored)

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.

Revision 1.87.2.2 / (download) - annotate - [select for diffs], Sun May 30 05:17:56 2010 UTC (3 years, 10 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.87.2.1: +55 -7 lines
Diff to previous 1.87.2.1 (colored) to branchpoint 1.87 (colored)

sync with head

Revision 1.89 / (download) - annotate - [select for diffs], Fri May 21 10:40:19 2010 UTC (3 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.88: +4 -6 lines
Diff to previous 1.88 (colored)

Since libpuffs needs a major bump for extattr support anyway, make
some changes to the user-kernel protocol.  Namely, try to be a
little more resilient some future changes.

Revision 1.88 / (download) - annotate - [select for diffs], Fri May 21 10:16:54 2010 UTC (3 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.87: +53 -3 lines
Diff to previous 1.87 (colored)

Support extended attributes.

Revision 1.86.2.1 / (download) - annotate - [select for diffs], Fri Apr 30 14:44:07 2010 UTC (3 years, 11 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.86: +30 -4 lines
Diff to previous 1.86 (colored)

Sync with HEAD.

Revision 1.81.16.1 / (download) - annotate - [select for diffs], Wed Apr 21 00:28:13 2010 UTC (3 years, 11 months ago) by matt
Branch: matt-nb5-mips64
CVS Tags: matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-k15
Changes since 1.81: +30 -2 lines
Diff to previous 1.81 (colored) next main 1.82 (colored)

sync to netbsd-5

Revision 1.87.2.1 / (download) - annotate - [select for diffs], Tue Mar 16 15:38:07 2010 UTC (4 years, 1 month ago) by rmind
Branch: rmind-uvmplock
Changes since 1.87: +8 -8 lines
Diff to previous 1.87 (colored)

Change struct uvm_object::vmobjlock to be dynamically allocated with
mutex_obj_alloc().  It allows us to share the locks among UVM objects.

Revision 1.78.10.3 / (download) - annotate - [select for diffs], Thu Mar 11 15:04:14 2010 UTC (4 years, 1 month ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.78.10.2: +74 -121 lines
Diff to previous 1.78.10.2 (colored) to branchpoint 1.78 (colored)

sync with head

Revision 1.87 / (download) - annotate - [select for diffs], Wed Feb 17 14:32:08 2010 UTC (4 years, 2 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, uebayasi-xip-base1
Branch point for: rmind-uvmplock
Changes since 1.86: +30 -4 lines
Diff to previous 1.86 (colored)

* add a rant about why MPSAFE isn't enabled even though puffs code is
* predict_false that we are mounting when calling statvfs
* KNF

Revision 1.86 / (download) - annotate - [select for diffs], Thu Jan 14 19:50:07 2010 UTC (4 years, 3 months ago) by pooka
Branch: MAIN
CVS Tags: uebayasi-xip-base
Branch point for: uebayasi-xip
Changes since 1.85: +12 -4 lines
Diff to previous 1.85 (colored)

In case the operations thread has exited, do not queue any more
operations.  This prevents kernel memory leaks (one of which happened
every time the file system was unmounted via PUFFSOP_UNMOUNT ...
and incidentally would've been trivially caught with the old
malloc(9) interface.  I wonder if the message is to use a ton of
pools instead of regression-attractive kmem interface).

Revision 1.81.8.1 / (download) - annotate - [select for diffs], Sat Jan 9 01:22:57 2010 UTC (4 years, 3 months ago) by snj
Branch: netbsd-5
CVS Tags: netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, matt-nb5-pq3-base, matt-nb5-pq3
Changes since 1.81: +30 -2 lines
Diff to previous 1.81 (colored)

Pull up following revision(s) (requested by pooka in ticket #1212):
	sys/fs/puffs/puffs_msgif.c: revision 1.76 via patch
	sys/fs/puffs/puffs_sys.h: revision 1.73 via patch
	sys/fs/puffs/puffs_vfsops.c: revision 1.84 via patch
Process flush requests from the file server in a separate thread
context.  This fixes a long-standing but seldomly seen deadlock,
where the kernel was holding pages busy (due to e.g. readahead
request) while waiting for the server to respond, and the server
made a callback into the kernel asking to invalidate those pages.
... or, well, theoretically fixes, since I didn't have any reliable
way of repeating the deadlock and I think I saw it only twice.

Revision 1.85 / (download) - annotate - [select for diffs], Thu Jan 7 23:02:34 2010 UTC (4 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.84: +3 -3 lines
Diff to previous 1.84 (colored)

Rename PUFFS_SOPREQ_EXIT to PUFFS_SOPREQSYS_EXIT to better signal
it comes from within the kernel instead of as a direct result of
a user request.

no functional change

Revision 1.84 / (download) - annotate - [select for diffs], Mon Dec 7 20:57:55 2009 UTC (4 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: matt-premerge-20091211
Changes since 1.83: +30 -2 lines
Diff to previous 1.83 (colored)

Process flush requests from the file server in a separate thread
context.  This fixes a long-standing but seldomly seen deadlock,
where the kernel was holding pages busy (due to e.g. readahead
request) while waiting for the server to respond, and the server
made a callback into the kernel asking to invalidate those pages.
... or, well, theoretically fixes, since I didn't have any reliable
way of repeating the deadlock and I think I saw it only twice.

Revision 1.83 / (download) - annotate - [select for diffs], Thu Nov 5 19:42:44 2009 UTC (4 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.82: +10 -119 lines
Diff to previous 1.82 (colored)

Kill suspend support.  It was never implemented correctly:
  * it depended on the biglock (in a very cruel way)
  * it was attached to userspace transactions rather than logical
    fs operations

(If someone wants to revisit it some day, most of the stuff can be
reused from cvs history)

Revision 1.81.12.1 / (download) - annotate - [select for diffs], Wed May 13 17:21:51 2009 UTC (4 years, 11 months ago) by jym
Branch: jym-xensuspend
Changes since 1.81: +4 -4 lines
Diff to previous 1.81 (colored) next main 1.82 (colored)

Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.

Revision 1.78.10.2 / (download) - annotate - [select for diffs], Mon May 4 08:13:43 2009 UTC (4 years, 11 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.78.10.1: +5 -5 lines
Diff to previous 1.78.10.1 (colored) to branchpoint 1.78 (colored)

sync with head.

Revision 1.81.6.1 / (download) - annotate - [select for diffs], Tue Apr 28 07:36:53 2009 UTC (4 years, 11 months ago) by skrll
Branch: nick-hppapmap
Changes since 1.81: +4 -4 lines
Diff to previous 1.81 (colored) next main 1.82 (colored)

Sync with HEAD.

Revision 1.82 / (download) - annotate - [select for diffs], Wed Mar 18 10:22:42 2009 UTC (5 years, 1 month ago) by cegger
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base, jymxensuspend-base, jym-xensuspend-nbase, jym-xensuspend-base
Changes since 1.81: +4 -4 lines
Diff to previous 1.81 (colored)

Ansify function definitions w/o arguments. Generated with sed.

Revision 1.79.2.1 / (download) - annotate - [select for diffs], Mon Jun 23 04:31:49 2008 UTC (5 years, 9 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.79: +19 -3 lines
Diff to previous 1.79 (colored) next main 1.80 (colored)

Sync w/ -current. 34 merge conflicts to follow.

Revision 1.78.8.2 / (download) - annotate - [select for diffs], Wed Jun 4 02:05:34 2008 UTC (5 years, 10 months ago) by yamt
Branch: yamt-pf42
Changes since 1.78.8.1: +3 -3 lines
Diff to previous 1.78.8.1 (colored) to branchpoint 1.78 (colored) next main 1.79 (colored)

sync with head

Revision 1.78.6.1 / (download) - annotate - [select for diffs], Mon Jun 2 13:24:05 2008 UTC (5 years, 10 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.78: +20 -3 lines
Diff to previous 1.78 (colored) next main 1.79 (colored)

Sync with HEAD.

Revision 1.81 / (download) - annotate - [select for diffs], Tue May 20 14:19:18 2008 UTC (5 years, 11 months ago) by jmcneill
Branch: MAIN
CVS Tags: yamt-pf42-base4, yamt-pf42-base3, wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, simonb-wapbl-nbase, simonb-wapbl-base, simonb-wapbl, nick-hppapmap-base2, netbsd-5-base, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, mjf-devfs2-base, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20091211, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-base2, haad-nbase2, haad-dm-base2, haad-dm-base1, haad-dm-base, haad-dm, ad-audiomp2-base, ad-audiomp2
Branch point for: nick-hppapmap, netbsd-5, matt-nb5-mips64, jym-xensuspend
Changes since 1.80: +3 -3 lines
Diff to previous 1.80 (colored)

Add module dependency on putter.

Revision 1.78.8.1 / (download) - annotate - [select for diffs], Sun May 18 12:35:02 2008 UTC (5 years, 11 months ago) by yamt
Branch: yamt-pf42
Changes since 1.78: +20 -3 lines
Diff to previous 1.78 (colored)

sync with head.

Revision 1.78.10.1 / (download) - annotate - [select for diffs], Fri May 16 02:25:18 2008 UTC (5 years, 11 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.78: +20 -3 lines
Diff to previous 1.78 (colored)

sync with head.

Revision 1.80 / (download) - annotate - [select for diffs], Sat May 10 02:26:09 2008 UTC (5 years, 11 months ago) by rumble
Branch: MAIN
CVS Tags: yamt-pf42-base2, yamt-nfs-mp-base2, hpcarm-cleanup-nbase
Changes since 1.79: +19 -3 lines
Diff to previous 1.79 (colored)

Convert file systems to dynamically attach with the new module interface.
Make VFS hooks dynamic while we're here and say farewell to VFS_ATTACH and
VFS_HOOKS_ATTACH linksets.

As a consequence, most of the file systems can now be loaded as new style
modules.

Quick sanity check by ad@.

Revision 1.79 / (download) - annotate - [select for diffs], Tue Apr 29 18:18:08 2008 UTC (5 years, 11 months ago) by ad
Branch: MAIN
Branch point for: wrstuden-revivesa
Changes since 1.78: +3 -2 lines
Diff to previous 1.78 (colored)

PR kern/38057 ffs makes assuptions about devvp file system
PR kern/33406 softdeps get stuck in endless loop

Introduce VFS_FSYNC() and call it when syncing a block device, if it
has a mounted file system.

Revision 1.54.2.3 / (download) - annotate - [select for diffs], Sun Mar 23 02:04:56 2008 UTC (6 years ago) by matt
Branch: matt-armv6
Changes since 1.54.2.2: +6 -2 lines
Diff to previous 1.54.2.2 (colored) next main 1.55 (colored)

sync with HEAD

Revision 1.65.4.3 / (download) - annotate - [select for diffs], Mon Feb 18 21:06:40 2008 UTC (6 years, 2 months ago) by mjf
Branch: mjf-devfs
Changes since 1.65.4.2: +71 -55 lines
Diff to previous 1.65.4.2 (colored) to branchpoint 1.65 (colored) next main 1.66 (colored)

Sync with HEAD.

Revision 1.16.2.9 / (download) - annotate - [select for diffs], Mon Feb 4 09:24:00 2008 UTC (6 years, 2 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.16.2.8: +6 -2 lines
Diff to previous 1.16.2.8 (colored) to branchpoint 1.16 (colored) next main 1.17 (colored)

sync with head.

Revision 1.78 / (download) - annotate - [select for diffs], Mon Jan 28 14:31:17 2008 UTC (6 years, 2 months ago) by dholland
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, keiichi-mipv6, hpcarm-cleanup-base, ad-socklock-base1
Branch point for: yamt-pf42, yamt-nfs-mp, mjf-devfs2
Changes since 1.77: +6 -2 lines
Diff to previous 1.77 (colored)

Fix some race conditions in rename.
Introduce a per-FS rename lock and new vfsops to manipulate it.
Get this lock while renaming. Also add another relookup() in do_sys_rename,
which is a hack to kludge around some of the worst deficiencies of
ufs_rename.
reviewed-by: pooka (and an earlier rev by ad)
posted on tech-kern with no objections.

Revision 1.16.2.8 / (download) - annotate - [select for diffs], Mon Jan 21 09:45:51 2008 UTC (6 years, 2 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.16.2.7: +67 -55 lines
Diff to previous 1.16.2.7 (colored) to branchpoint 1.16 (colored)

sync with head

Revision 1.54.2.2 / (download) - annotate - [select for diffs], Wed Jan 9 01:55:48 2008 UTC (6 years, 3 months ago) by matt
Branch: matt-armv6
Changes since 1.54.2.1: +124 -101 lines
Diff to previous 1.54.2.1 (colored)

sync with HEAD

Revision 1.72.6.2 / (download) - annotate - [select for diffs], Tue Jan 8 22:11:27 2008 UTC (6 years, 3 months ago) by bouyer
Branch: bouyer-xeni386
CVS Tags: bouyer-xeni386-merge1
Changes since 1.72.6.1: +10 -4 lines
Diff to previous 1.72.6.1 (colored) to branchpoint 1.72 (colored) next main 1.73 (colored)

Sync with HEAD

Revision 1.77 / (download) - annotate - [select for diffs], Thu Jan 3 18:09:35 2008 UTC (6 years, 3 months ago) by pooka
Branch: MAIN
CVS Tags: matt-armv6-base, bouyer-xeni386-nbase, bouyer-xeni386-base
Changes since 1.76: +8 -2 lines
Diff to previous 1.76 (colored)

fix vmlocking2 fallout: fstrans_mount/unmount

Revision 1.76 / (download) - annotate - [select for diffs], Thu Jan 3 01:26:29 2008 UTC (6 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.75: +4 -4 lines
Diff to previous 1.75 (colored)

valloc -> vnalloc, vfree -> vnfree
Avoids collision with userland valloc(3).

no functional change
ad ok

Revision 1.75 / (download) - annotate - [select for diffs], Wed Jan 2 22:37:21 2008 UTC (6 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.74: +4 -4 lines
Diff to previous 1.74 (colored)

More type-punning workarounds.  Curiously the kernel compilation
flags cause gcc to not complain.

Revision 1.72.6.1 / (download) - annotate - [select for diffs], Wed Jan 2 21:55:34 2008 UTC (6 years, 3 months ago) by bouyer
Branch: bouyer-xeni386
Changes since 1.72: +59 -53 lines
Diff to previous 1.72 (colored)

Sync with HEAD

Revision 1.74 / (download) - annotate - [select for diffs], Wed Jan 2 11:48:44 2008 UTC (6 years, 3 months ago) by ad
Branch: MAIN
Changes since 1.73: +26 -21 lines
Diff to previous 1.73 (colored)

Merge vmlocking2 to head.

Revision 1.73 / (download) - annotate - [select for diffs], Sun Dec 30 23:04:12 2007 UTC (6 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.72: +35 -34 lines
Diff to previous 1.72 (colored)

namespace a bit: vfsops -> puffs_vfsop_x() and vops -> puffs_vnop_x()

Revision 1.65.4.2 / (download) - annotate - [select for diffs], Sat Dec 8 18:20:18 2007 UTC (6 years, 4 months ago) by mjf
Branch: mjf-devfs
Changes since 1.65.4.1: +22 -39 lines
Diff to previous 1.65.4.1 (colored) to branchpoint 1.65 (colored)

Sync with HEAD.

Revision 1.16.2.7 / (download) - annotate - [select for diffs], Fri Dec 7 17:32:05 2007 UTC (6 years, 4 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.16.2.6: +50 -49 lines
Diff to previous 1.16.2.6 (colored) to branchpoint 1.16 (colored)

sync with head

Revision 1.72.2.1 / (download) - annotate - [select for diffs], Tue Dec 4 13:03:07 2007 UTC (6 years, 4 months ago) by ad
Branch: vmlocking2
Changes since 1.72: +26 -21 lines
Diff to previous 1.72 (colored) next main 1.73 (colored)

Pull the vmlocking changes into a new branch.

Revision 1.53.2.7 / (download) - annotate - [select for diffs], Tue Nov 27 19:37:49 2007 UTC (6 years, 4 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.53.2.6: +13 -19 lines
Diff to previous 1.53.2.6 (colored) to branchpoint 1.53 (colored) next main 1.54 (colored)

Sync with HEAD. amd64 Xen support needs testing.

Revision 1.72 / (download) - annotate - [select for diffs], Tue Nov 27 11:31:17 2007 UTC (6 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, vmlocking2-base3, vmlocking2-base2, vmlocking2-base1, vmlocking-nbase, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, jmcneill-pm-base, cube-autoconf-base, cube-autoconf
Branch point for: vmlocking2, bouyer-xeni386
Changes since 1.71: +2 -5 lines
Diff to previous 1.71 (colored)

Remove "puffs_cid" from the puffs interface following l-removal
from the kernel vfs interfaces.  puffs_cc_getcaller(pcc) can be
used now should the same information be desired.

Revision 1.71 / (download) - annotate - [select for diffs], Mon Nov 26 19:01:49 2007 UTC (6 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.70: +16 -19 lines
Diff to previous 1.70 (colored)

Remove the "struct lwp *" argument from all VFS and VOP interfaces.
The general trend is to remove it from all kernel interfaces and
this is a start.  In case the calling lwp is desired, curlwp should
be used.

quick consensus on tech-kern

Revision 1.53.2.6 / (download) - annotate - [select for diffs], Wed Nov 21 21:55:56 2007 UTC (6 years, 4 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.53.2.5: +39 -32 lines
Diff to previous 1.53.2.5 (colored) to branchpoint 1.53 (colored)

Sync with HEAD.

Revision 1.65.2.3 / (download) - annotate - [select for diffs], Wed Nov 21 21:19:44 2007 UTC (6 years, 4 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.65.2.2: +11 -22 lines
Diff to previous 1.65.2.2 (colored) to branchpoint 1.65 (colored) next main 1.66 (colored)

Sync with HEAD

Revision 1.70 / (download) - annotate - [select for diffs], Tue Nov 20 11:51:02 2007 UTC (6 years, 5 months ago) by pooka
Branch: MAIN
CVS Tags: bouyer-xenamd64-base2, bouyer-xenamd64-base
Changes since 1.69: +11 -22 lines
Diff to previous 1.69 (colored)

Retire M_PUFFS, use kmem(9) instead.

Revision 1.65.4.1 / (download) - annotate - [select for diffs], Mon Nov 19 00:48:30 2007 UTC (6 years, 5 months ago) by mjf
Branch: mjf-devfs
Changes since 1.65: +45 -17 lines
Diff to previous 1.65 (colored)

Sync with HEAD.

Revision 1.65.2.2 / (download) - annotate - [select for diffs], Sun Nov 18 19:35:46 2007 UTC (6 years, 5 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.65.2.1: +28 -10 lines
Diff to previous 1.65.2.1 (colored) to branchpoint 1.65 (colored)

Sync with HEAD

Revision 1.69 / (download) - annotate - [select for diffs], Fri Nov 16 20:32:18 2007 UTC (6 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.68: +30 -12 lines
Diff to previous 1.68 (colored)

Restructure the messaging interface a bit more: make all interfacing
with the file server happen through puffs_msg_enqueue() and
puffs_msg_wait() instead of having a billion different routines.
Build the existing system upon these two.  Most importantly though,
decouple insertation into the op queue from the actual wait.  This
is useful for a number of reasons coming soon to a cvs repo near you.

Revision 1.16.2.6 / (download) - annotate - [select for diffs], Thu Nov 15 11:44:36 2007 UTC (6 years, 5 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.16.2.5: +17 -7 lines
Diff to previous 1.16.2.5 (colored) to branchpoint 1.16 (colored)

sync with head.

Revision 1.53.2.5 / (download) - annotate - [select for diffs], Wed Nov 14 19:04:37 2007 UTC (6 years, 5 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.53.2.4: +3 -3 lines
Diff to previous 1.53.2.4 (colored) to branchpoint 1.53 (colored)

Sync with HEAD.

Revision 1.65.2.1 / (download) - annotate - [select for diffs], Tue Nov 13 16:01:49 2007 UTC (6 years, 5 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.65: +17 -7 lines
Diff to previous 1.65 (colored)

Sync with HEAD

Revision 1.68 / (download) - annotate - [select for diffs], Mon Nov 12 16:39:35 2007 UTC (6 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.67: +3 -3 lines
Diff to previous 1.67 (colored)

* split the putter header into a kernel version and a userland version
  + install latter to /usr/include/dev/putter
* remove last dependencies to puffs from putter, it's completely
  independent now

Revision 1.67 / (download) - annotate - [select for diffs], Mon Nov 12 14:30:56 2007 UTC (6 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.66: +3 -3 lines
Diff to previous 1.66 (colored)

Move putter code from directly under dev/ to dev/putter/

no functional change

Revision 1.53.2.4 / (download) - annotate - [select for diffs], Sun Nov 11 16:47:54 2007 UTC (6 years, 5 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.53.2.3: +17 -7 lines
Diff to previous 1.53.2.3 (colored) to branchpoint 1.53 (colored)

Sync with HEAD.

Revision 1.66 / (download) - annotate - [select for diffs], Sat Nov 10 21:45:08 2007 UTC (6 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.65: +17 -7 lines
Diff to previous 1.65 (colored)

Part 2/n of extensive changes to request transport to/from userspace:

Rip the transport code completely out of puffs and generalize it
into an independent module which will be used for multiple purposes
in the future.  This module is called the Pass-to-Userspace
Transporter (known as "putter" among friends).

This is very much work-in-progress and one dependency with puffs
remains: the request framing format.

The device name is still /dev/puffs, but that will change soon.

Users of puffs need the following in their kernel configs now:
pseudo-device   putter

Revision 1.54.2.1 / (download) - annotate - [select for diffs], Tue Nov 6 23:31:16 2007 UTC (6 years, 5 months ago) by matt
Branch: matt-armv6
CVS Tags: matt-armv6-prevmlocking
Changes since 1.54: +103 -71 lines
Diff to previous 1.54 (colored)

sync with HEAD

Revision 1.28.6.12 / (download) - annotate - [select for diffs], Sun Oct 28 22:01:25 2007 UTC (6 years, 5 months ago) by ad
Branch: vmlocking
Changes since 1.28.6.11: +15 -10 lines
Diff to previous 1.28.6.11 (colored) to branchpoint 1.28 (colored) next main 1.29 (colored)

Fix up mnt_vnodelist handling.

Revision 1.16.2.5 / (download) - annotate - [select for diffs], Sat Oct 27 11:35:12 2007 UTC (6 years, 5 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.16.2.4: +103 -71 lines
Diff to previous 1.16.2.4 (colored) to branchpoint 1.16 (colored)

sync with head.

Revision 1.53.2.3 / (download) - annotate - [select for diffs], Fri Oct 26 15:48:20 2007 UTC (6 years, 5 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.53.2.2: +86 -69 lines
Diff to previous 1.53.2.2 (colored) to branchpoint 1.53 (colored)

Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.

Revision 1.56.2.2 / (download) - annotate - [select for diffs], Sun Oct 14 11:48:33 2007 UTC (6 years, 6 months ago) by yamt
Branch: yamt-x86pmap
Changes since 1.56.2.1: +86 -69 lines
Diff to previous 1.56.2.1 (colored) to branchpoint 1.56 (colored) next main 1.57 (colored)

sync with head.

Revision 1.28.6.11 / (download) - annotate - [select for diffs], Fri Oct 12 17:03:19 2007 UTC (6 years, 6 months ago) by ad
Branch: vmlocking
Changes since 1.28.6.10: +86 -69 lines
Diff to previous 1.28.6.10 (colored) to branchpoint 1.28 (colored)

Sync with head.

Revision 1.65 / (download) - annotate - [select for diffs], Thu Oct 11 23:04:21 2007 UTC (6 years, 6 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-x86pmap-base4, yamt-x86pmap-base3, vmlocking-base, jmcneill-base
Branch point for: mjf-devfs, bouyer-xenamd64
Changes since 1.64: +22 -9 lines
Diff to previous 1.64 (colored)

Handle suspend and flush requests from the file server.

Revision 1.64 / (download) - annotate - [select for diffs], Thu Oct 11 22:06:05 2007 UTC (6 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.63: +5 -3 lines
Diff to previous 1.63 (colored)

in case of version mismatch, print the numbers

Revision 1.63 / (download) - annotate - [select for diffs], Thu Oct 11 19:41:14 2007 UTC (6 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.62: +67 -64 lines
Diff to previous 1.62 (colored)

Part 1/n of some pretty extensive changes to how the kernel module
interacts with the userspace file server:

  * since the kernel-user communication is not purely request-response
    anymore (hasn't been since 2006), try to rename some "request" to
    "message".  more similar mangling will take place in the future.

  * completely rework how messages are allocated.  previously most of
    them were borrowed from the stack (originally *all* of them),
    but now always allocate dynamically.  this makes the structure
    of the code much cleaner.  also makes it possible to fix a
    locking order violation.  it enables plenty of future enhancements.

  * start generalizing the transport interface to be independent of puffs

  * move transport interface to read/write instead of ioctl.  the
    old one had legacy design problems, and besides, ioctl's suck.
    implement a very generic version for now; this will be
    worked on later hopefully some day reaching "highly optimized".

  * implement libpuffs support behind existing library request
    interfaces.  this will change eventually (I hate those interfaces)

Revision 1.62 / (download) - annotate - [select for diffs], Thu Oct 11 12:31:45 2007 UTC (6 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.61: +5 -5 lines
Diff to previous 1.61 (colored)

Cache vnode member variables necessary for operations after the
userspace call, namely our private mount structure, in the activation
record.  This avoids problems in situations where the userspace
file server happens to die during our upcall and the vnode is
forcibly reclaimed before we roll back to the current stack frame.

Revision 1.61 / (download) - annotate - [select for diffs], Tue Oct 9 20:57:07 2007 UTC (6 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.60: +2 -3 lines
Diff to previous 1.60 (colored)

g/c more unused stuff

Revision 1.28.6.10 / (download) - annotate - [select for diffs], Tue Oct 9 13:44:19 2007 UTC (6 years, 6 months ago) by ad
Branch: vmlocking
Changes since 1.28.6.9: +84 -37 lines
Diff to previous 1.28.6.9 (colored) to branchpoint 1.28 (colored)

Sync with head.

Revision 1.56.2.1 / (download) - annotate - [select for diffs], Sat Oct 6 15:29:49 2007 UTC (6 years, 6 months ago) by yamt
Branch: yamt-x86pmap
Changes since 1.56: +19 -7 lines
Diff to previous 1.56 (colored)

sync with head.

Revision 1.53.2.2 / (download) - annotate - [select for diffs], Tue Oct 2 18:28:54 2007 UTC (6 years, 6 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.53.2.1: +22 -7 lines
Diff to previous 1.53.2.1 (colored) to branchpoint 1.53 (colored)

Sync with HEAD.

Revision 1.60 / (download) - annotate - [select for diffs], Mon Oct 1 21:09:08 2007 UTC (6 years, 6 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-x86pmap-base2
Changes since 1.59: +9 -3 lines
Diff to previous 1.59 (colored)

* better error checking: validate error values received from userland
  to be vaild errno values
* include string describing error in PUFFS_ERR
* get rid of union in puffs_req, it's nothing but trouble
* pass pmp to async i/o callbacks

Revision 1.59 / (download) - annotate - [select for diffs], Thu Sep 27 21:44:12 2007 UTC (6 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.58: +9 -4 lines
Diff to previous 1.58 (colored)

Differentiate between cookie2vnode returning an error and
return to caller, address unknown: no such cookie, no such node.
Make the callers use this info to either create a new vnode or bail.

Revision 1.58 / (download) - annotate - [select for diffs], Thu Sep 27 21:14:50 2007 UTC (6 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.57: +4 -4 lines
Diff to previous 1.57 (colored)

Add error notifications, which are used to deliver errors from the
kernel to the file server for silly things the file server did,
e.g. attempting to create a file with size VSIZENOTSET.  The file
server can handle these as it chooses, but the default action is
for it to throw its hands in the air and sing "goodbye, cruel world,
it's over, walk on by".

Revision 1.57 / (download) - annotate - [select for diffs], Thu Sep 27 14:35:15 2007 UTC (6 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.56: +5 -4 lines
Diff to previous 1.56 (colored)

Fix a race in how new cookies are checked.  Previously the checking
was done separate of inserting the cookie into the lookup structure
and without any form of interlock.  This could lead to the same
cookie pointing to two different nodes.  Remedy the race by creating
a separate "checked and ready to be inserted" cookie list which
serves as an interlock without having to hold a fs-global creation
lock.

Revision 1.51.2.3 / (download) - annotate - [select for diffs], Mon Sep 10 10:55:54 2007 UTC (6 years, 7 months ago) by skrll
Branch: nick-csl-alignment
Changes since 1.51.2.2: +5 -2 lines
Diff to previous 1.51.2.2 (colored) to branchpoint 1.51 (colored) next main 1.52 (colored)

Sync with HEAD.

Revision 1.56 / (download) - annotate - [select for diffs], Wed Sep 5 22:34:17 2007 UTC (6 years, 7 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-x86pmap-base, nick-csl-alignment-base5
Branch point for: yamt-x86pmap
Changes since 1.55: +5 -5 lines
Diff to previous 1.55 (colored)

move static KASSERT from mount to init

Revision 1.55 / (download) - annotate - [select for diffs], Tue Sep 4 00:11:38 2007 UTC (6 years, 7 months ago) by pooka
Branch: MAIN
Changes since 1.54: +5 -2 lines
Diff to previous 1.54 (colored)

* don't allow the file server to specify a node size to be VSIZENOTSET
* KASSERT that VNOVAL == VSIZENOTSET

Revision 1.53.2.1 / (download) - annotate - [select for diffs], Mon Sep 3 16:48:46 2007 UTC (6 years, 7 months ago) by jmcneill
Branch: jmcneill-pm
Changes since 1.53: +64 -32 lines
Diff to previous 1.53 (colored)

Sync with HEAD.

Revision 1.16.2.4 / (download) - annotate - [select for diffs], Mon Sep 3 14:40:30 2007 UTC (6 years, 7 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.16.2.3: +281 -198 lines
Diff to previous 1.16.2.3 (colored) to branchpoint 1.16 (colored)

sync with head.

Revision 1.51.2.2 / (download) - annotate - [select for diffs], Mon Sep 3 10:22:56 2007 UTC (6 years, 7 months ago) by skrll
Branch: nick-csl-alignment
Changes since 1.51.2.1: +64 -32 lines
Diff to previous 1.51.2.1 (colored) to branchpoint 1.51 (colored)

Sync with HEAD.

Revision 1.54 / (download) - annotate - [select for diffs], Thu Aug 23 14:36:48 2007 UTC (6 years, 7 months ago) by pooka
Branch: MAIN
Branch point for: matt-armv6
Changes since 1.53: +64 -32 lines
Diff to previous 1.53 (colored)

Add a third type of fh option, passthrough, where the kernel does
not attempt to handle struct fid at all and passes it as such to
userspace.

Revision 1.28.6.9 / (download) - annotate - [select for diffs], Mon Aug 20 21:26:09 2007 UTC (6 years, 8 months ago) by ad
Branch: vmlocking
Changes since 1.28.6.8: +23 -11 lines
Diff to previous 1.28.6.8 (colored) to branchpoint 1.28 (colored)

Sync with HEAD.

Revision 1.51.2.1 / (download) - annotate - [select for diffs], Wed Aug 15 13:49:00 2007 UTC (6 years, 8 months ago) by skrll
Branch: nick-csl-alignment
Changes since 1.51: +5 -5 lines
Diff to previous 1.51 (colored)

Sync with HEAD.

Revision 1.53.4.2 / (download) - annotate - [select for diffs], Tue Jul 31 21:14:19 2007 UTC (6 years, 8 months ago) by pooka
Branch: matt-mips64
Changes since 1.53.4.1: +748 -0 lines
Diff to previous 1.53.4.1 (colored) to branchpoint 1.53 (colored) next main 1.54 (colored)

* nuke the nameidata parameter from VFS_MOUNT().  Nobody on tech-kern
  knew what it was supposed to be used for and wrstuden gave a go-ahead
* while rototilling, convert file systems which went easily to
  use VFS_PROTOS() instead of manually prototyping the methods

Revision 1.53.4.1, Tue Jul 31 21:14:18 2007 UTC (6 years, 8 months ago) by pooka
Branch: matt-mips64
Changes since 1.53: +0 -748 lines
FILE REMOVED

file puffs_vfsops.c was added on branch matt-mips64 on 2007-07-31 21:14:19 +0000

Revision 1.53 / (download) - annotate - [select for diffs], Tue Jul 31 21:14:18 2007 UTC (6 years, 8 months ago) by pooka
Branch: MAIN
CVS Tags: matt-mips64-base
Branch point for: matt-mips64, jmcneill-pm
Changes since 1.52: +3 -3 lines
Diff to previous 1.52 (colored)

* nuke the nameidata parameter from VFS_MOUNT().  Nobody on tech-kern
  knew what it was supposed to be used for and wrstuden gave a go-ahead
* while rototilling, convert file systems which went easily to
  use VFS_PROTOS() instead of manually prototyping the methods

Revision 1.52 / (download) - annotate - [select for diffs], Thu Jul 19 09:26:12 2007 UTC (6 years, 9 months ago) by pooka
Branch: MAIN
CVS Tags: hpcarm-cleanup
Changes since 1.51: +4 -4 lines
Diff to previous 1.51 (colored)

Make the minimum request size twice the minimum request structure size.
Otherwise ops with payload would have no room for payload.

Revision 1.51 / (download) - annotate - [select for diffs], Tue Jul 17 11:29:43 2007 UTC (6 years, 9 months ago) by pooka
Branch: MAIN
CVS Tags: nick-csl-alignment-base
Branch point for: nick-csl-alignment
Changes since 1.50: +20 -8 lines
Diff to previous 1.50 (colored)

Set a file server supplied file system type in the type field and set
the mntfromname to be the place mounted from instead of the type.

Revision 1.50 / (download) - annotate - [select for diffs], Tue Jul 17 11:19:33 2007 UTC (6 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.49: +3 -3 lines
Diff to previous 1.49 (colored)

Make set_statvfs_info() take a parameter for the vfs name instead
of always retrieving it from mp->mnt_op->vfs_name

christos ok

Revision 1.28.6.8 / (download) - annotate - [select for diffs], Sun Jul 15 15:52:51 2007 UTC (6 years, 9 months ago) by ad
Branch: vmlocking
Changes since 1.28.6.7: +18 -73 lines
Diff to previous 1.28.6.7 (colored) to branchpoint 1.28 (colored)

Sync with head.

Revision 1.49 / (download) - annotate - [select for diffs], Sat Jul 14 16:06:53 2007 UTC (6 years, 9 months ago) by dsl
Branch: MAIN
Changes since 1.48: +2 -6 lines
Diff to previous 1.48 (colored)

Remove the copyout() of the mount args from puffs_mount(), the buffer
supplied is a kernel address.
The puffs userspace code has been changed to do a 2nd call with
MNT_GETARGS to retrieve the information.

Revision 1.48 / (download) - annotate - [select for diffs], Thu Jul 12 19:35:33 2007 UTC (6 years, 9 months ago) by dsl
Branch: MAIN
Changes since 1.47: +11 -7 lines
Diff to previous 1.47 (colored)

Change the VFS_MOUNT() interface so that the 'data' buffer passed to the
fs code is a kernel buffer, pass though the length of the buffer as well.
Since the length of the userspace buffer isn'it (yet) passed through the mount
system call, add a field to the vfsops structure containing the default length.
Split sys_mount() for calls from compat code.
Ride one of the recent kernel version changes - old fs LKMs will load, but
sys_mount() will reject any attempt to use them.

Revision 1.28.8.1 / (download) - annotate - [select for diffs], Wed Jul 11 20:09:30 2007 UTC (6 years, 9 months ago) by mjf
Branch: mjf-ufs-trans
Changes since 1.28: +220 -181 lines
Diff to previous 1.28 (colored) next main 1.29 (colored)

Sync with head.

Revision 1.47 / (download) - annotate - [select for diffs], Mon Jul 9 21:10:49 2007 UTC (6 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: mjf-ufs-trans-base
Changes since 1.46: +3 -2 lines
Diff to previous 1.46 (colored)

Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements

Revision 1.46 / (download) - annotate - [select for diffs], Sun Jul 1 17:22:16 2007 UTC (6 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.45: +5 -5 lines
Diff to previous 1.45 (colored)

Instead of supplying a plain pid, supply an abstract struct puffs_cid *,
which can currently be used to query the pid and lwpid.

Revision 1.45 / (download) - annotate - [select for diffs], Thu Jun 21 14:54:49 2007 UTC (6 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.44: +6 -15 lines
Diff to previous 1.44 (colored)

Refactor the pnode2vnode translation slightly so that VFS_ROOT
can use it directly.

Revision 1.44 / (download) - annotate - [select for diffs], Thu Jun 21 14:11:34 2007 UTC (6 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.43: +7 -52 lines
Diff to previous 1.43 (colored)

Reorganize how the root vnode is fetched so that it doesn't always
go through VFS_ROOT() and allow to fetch it without locking it.
This allows us to call the cache flush operations also for the root
vnode and most notably fixes e.g. a "No such file or directory"
for a psshfs root directory ls -l when a file was locally deleted
and remotely re-created.

Also fix some sloppy programming in root node fetch (mostly cosmetic).

Revision 1.28.6.7 / (download) - annotate - [select for diffs], Sun Jun 17 21:31:10 2007 UTC (6 years, 10 months ago) by ad
Branch: vmlocking
Changes since 1.28.6.6: +4 -3 lines
Diff to previous 1.28.6.6 (colored) to branchpoint 1.28 (colored)

- Increase the number of thread priorities from 128 to 256. How the space
  is set up is to be revisited.
- Implement soft interrupts as kernel threads. A generic implementation
  is provided, with hooks for fast-path MD code that can run the interrupt
  threads over the top of other threads executing in the kernel.
- Split vnode::v_flag into three fields, depending on how the flag is
  locked (by the interlock, by the vnode lock, by the file system).
- Miscellaneous locking fixes and improvements.

Revision 1.28.6.6 / (download) - annotate - [select for diffs], Sat Jun 9 23:58:02 2007 UTC (6 years, 10 months ago) by ad
Branch: vmlocking
Changes since 1.28.6.5: +2 -5 lines
Diff to previous 1.28.6.5 (colored) to branchpoint 1.28 (colored)

Sync with head.

Revision 1.28.6.5 / (download) - annotate - [select for diffs], Fri Jun 8 14:15:01 2007 UTC (6 years, 10 months ago) by ad
Branch: vmlocking
Changes since 1.28.6.4: +186 -98 lines
Diff to previous 1.28.6.4 (colored) to branchpoint 1.28 (colored)

Sync with head.

Revision 1.43 / (download) - annotate - [select for diffs], Wed Jun 6 01:55:00 2007 UTC (6 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.42: +2 -5 lines
Diff to previous 1.42 (colored)

Move puffs to a two clause license where it already isn't so.  And
as agc pointed out, even files with the third clause were already
effectively two clause because of a slight bug in the language...

Revision 1.42 / (download) - annotate - [select for diffs], Thu May 17 13:59:22 2007 UTC (6 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.41: +21 -48 lines
Diff to previous 1.41 (colored)

Make it possible for the file server to specify the root vnode type
and other information instead of always using VDIR.  To make this
possible without races, require all root node information already
in puffs_mount() and nuke puffs_start2() and the associated start
operation completely.

requested/inspired by Tobias Nygren

Revision 1.28.2.3 / (download) - annotate - [select for diffs], Mon May 7 10:55:42 2007 UTC (6 years, 11 months ago) by yamt
Branch: yamt-idlelwp
Changes since 1.28.2.2: +129 -63 lines
Diff to previous 1.28.2.2 (colored) to branchpoint 1.28 (colored) next main 1.29 (colored)

sync with head.

Revision 1.41 / (download) - annotate - [select for diffs], Tue May 1 12:18:40 2007 UTC (6 years, 11 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-idlelwp-base8
Changes since 1.40: +13 -15 lines
Diff to previous 1.40 (colored)

Fix a problem introduced when I converted puffs to use newlock2:
when unmounting the file system in case of a certain timing (and
possibly some other conditions), a thread would wait on a condition
variable, while another thread broadcast the cv and immediately
proceeded to destroy it.  The result was a system frozen completely
solid shorly after the process waiting for the cv woke up.  So
introduce reference counting to synchronize destruction of the
resources in unmount.

I was able to repeat the problem only on my laptop in some special
cases, so I do not know how common it was.  Ironically, killing
the file server process violently instead of unmount() didn't have
this problem because it never entered the unmount path from two
directions.

Revision 1.40 / (download) - annotate - [select for diffs], Mon Apr 16 13:54:07 2007 UTC (7 years ago) by pooka
Branch: MAIN
Changes since 1.39: +14 -17 lines
Diff to previous 1.39 (colored)

Sanity-check & possibly adjust number of hash buckets already before
returning the mount argument structure to userspace.

Revision 1.39 / (download) - annotate - [select for diffs], Mon Apr 16 13:24:35 2007 UTC (7 years ago) by pooka
Branch: MAIN
Changes since 1.38: +9 -4 lines
Diff to previous 1.38 (colored)

catch invalid size file handles already in the kernel

Revision 1.38 / (download) - annotate - [select for diffs], Mon Apr 16 13:03:26 2007 UTC (7 years ago) by pooka
Branch: MAIN
Changes since 1.37: +102 -36 lines
Diff to previous 1.37 (colored)

Give the file server the ability to specify the file handle length
instead of defining a static length file handle on the framework-level.

Revision 1.28.2.2 / (download) - annotate - [select for diffs], Sun Apr 15 16:03:47 2007 UTC (7 years ago) by yamt
Branch: yamt-idlelwp
Changes since 1.28.2.1: +119 -63 lines
Diff to previous 1.28.2.1 (colored) to branchpoint 1.28 (colored)

sync with head.

Revision 1.37 / (download) - annotate - [select for diffs], Sat Apr 14 16:52:22 2007 UTC (7 years ago) by xtraeme
Branch: MAIN
Changes since 1.36: +3 -3 lines
Diff to previous 1.36 (colored)

size_t is unsigned, so use zu rather than zd which is for ssize_t,
as Matt Thomas pointed out.

Revision 1.36 / (download) - annotate - [select for diffs], Sat Apr 14 16:13:18 2007 UTC (7 years ago) by xtraeme
Branch: MAIN
Changes since 1.35: +3 -3 lines
Diff to previous 1.35 (colored)

Use zd to printf size_t.

Revision 1.35 / (download) - annotate - [select for diffs], Fri Apr 13 15:25:35 2007 UTC (7 years ago) by pooka
Branch: MAIN
Changes since 1.34: +16 -6 lines
Diff to previous 1.34 (colored)

Allow file servers to request the number of hash cookie buckets for
pnode -> vnode reverse lookup.

Revision 1.34 / (download) - annotate - [select for diffs], Fri Apr 13 13:31:11 2007 UTC (7 years ago) by pooka
Branch: MAIN
Changes since 1.33: +7 -7 lines
Diff to previous 1.33 (colored)

* add fhlen to kernel argument structure
* rename it to puffs_kargs instead of puffs_args

Revision 1.33 / (download) - annotate - [select for diffs], Wed Apr 11 21:03:05 2007 UTC (7 years ago) by pooka
Branch: MAIN
CVS Tags: thorpej-atomic-base, thorpej-atomic
Changes since 1.32: +65 -26 lines
Diff to previous 1.32 (colored)

* support VFS_FHTOVP and VFS_VPTOFH
* support cookies in for VOP_READDIR

nfs exporting puffs file systems works now

Revision 1.28.6.4 / (download) - annotate - [select for diffs], Tue Apr 10 13:26:36 2007 UTC (7 years ago) by ad
Branch: vmlocking
Changes since 1.28.6.3: +47 -40 lines
Diff to previous 1.28.6.3 (colored) to branchpoint 1.28 (colored)

Sync with head.

Revision 1.28.6.3 / (download) - annotate - [select for diffs], Thu Apr 5 21:57:48 2007 UTC (7 years ago) by ad
Branch: vmlocking
Changes since 1.28.6.2: +4 -3 lines
Diff to previous 1.28.6.2 (colored) to branchpoint 1.28 (colored)

Compile fixes.

Revision 1.29.2.1 / (download) - annotate - [select for diffs], Thu Mar 29 19:27:55 2007 UTC (7 years ago) by reinoud
Branch: reinoud-bufcleanup
Changes since 1.29: +47 -40 lines
Diff to previous 1.29 (colored) next main 1.30 (colored)

Pullup to -current

Revision 1.32 / (download) - annotate - [select for diffs], Thu Mar 29 16:30:07 2007 UTC (7 years ago) by pooka
Branch: MAIN
Changes since 1.31: +3 -7 lines
Diff to previous 1.31 (colored)

convert to MALLOC_JUSTDEFINE

Revision 1.31 / (download) - annotate - [select for diffs], Thu Mar 29 16:04:26 2007 UTC (7 years ago) by pooka
Branch: MAIN
Changes since 1.30: +37 -26 lines
Diff to previous 1.30 (colored)

Convert spinlocks & sleep/wakeup to newlock2 locking stuff.  Fix a
bunch of bugs.

* park structures are now always allocated from a pool instead of a
  mixed stack/malloc allocation
* get rid of the whole adjbuf concept, always just alloc the maximal
  amount of memory to satisfy a request
* little regression: don't allow interrupting wait from file system
  to userspace; this had problems already before, but now the problems
  really started to shine through.  I'll try to make this work again
  some day.
* fix bmap to return a sensible value in runp

Revision 1.28.2.1 / (download) - annotate - [select for diffs], Sat Mar 24 14:55:58 2007 UTC (7 years ago) by yamt
Branch: yamt-idlelwp
Changes since 1.28: +13 -13 lines
Diff to previous 1.28 (colored)

sync with head.

Revision 1.30 / (download) - annotate - [select for diffs], Tue Mar 20 10:21:59 2007 UTC (7 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.29: +12 -12 lines
Diff to previous 1.29 (colored)

* rework the page cache interaction a bit: cache metadata in the
  kernel and flush it out all at once instead of continuous updating
* add support for delivering notifications to the file server about
  when a page was written to (but disabled by default for now).  the
  file server can use this to request flushing or invalidating the
  kernel page cache

Revision 1.28.6.2 / (download) - annotate - [select for diffs], Tue Mar 13 17:50:48 2007 UTC (7 years, 1 month ago) by ad
Branch: vmlocking
Changes since 1.28.6.1: +12 -12 lines
Diff to previous 1.28.6.1 (colored) to branchpoint 1.28 (colored)

Pull in the initial set of changes for the vmlocking branch.

Revision 1.28.6.1 / (download) - annotate - [select for diffs], Tue Mar 13 16:51:36 2007 UTC (7 years, 1 month ago) by ad
Branch: vmlocking
Changes since 1.28: +3 -3 lines
Diff to previous 1.28 (colored)

Sync with head.

Revision 1.29 / (download) - annotate - [select for diffs], Tue Mar 13 14:16:07 2007 UTC (7 years, 1 month ago) by ad
Branch: MAIN
Branch point for: reinoud-bufcleanup
Changes since 1.28: +3 -3 lines
Diff to previous 1.28 (colored)

Pass an ipl argument to pool_init/POOL_INIT to be used when initializing
the pool's lock.

Revision 1.16.2.3 / (download) - annotate - [select for diffs], Mon Feb 26 09:10:58 2007 UTC (7 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.16.2.2: +248 -40 lines
Diff to previous 1.16.2.2 (colored) to branchpoint 1.16 (colored)

sync with head.

Revision 1.13.2.1 / (download) - annotate - [select for diffs], Sat Feb 17 23:27:45 2007 UTC (7 years, 2 months ago) by tron
Branch: netbsd-4
CVS Tags: wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, netbsd-4-0, matt-nb4-arm-base, matt-nb4-arm
Changes since 1.13: +4 -4 lines
Diff to previous 1.13 (colored) next main 1.14 (colored)

Apply patch (requested by chs in ticket #422):
- Fix various deadlock problems with nullfs and unionfs.
- Speed up path lookups by upto 25%.

Revision 1.28 / (download) - annotate - [select for diffs], Fri Feb 16 17:24:00 2007 UTC (7 years, 2 months ago) by hannken
Branch: MAIN
CVS Tags: ad-audiomp-base, ad-audiomp
Branch point for: yamt-idlelwp, vmlocking, mjf-ufs-trans
Changes since 1.27: +2 -4 lines
Diff to previous 1.27 (colored)

Make fstrans(9) the default helper for file system suspension.
Replaces the now obsolete vn_start_write()/vn_finished_write().

Revision 1.11.2.4 / (download) - annotate - [select for diffs], Thu Feb 1 08:48:33 2007 UTC (7 years, 2 months ago) by ad
Branch: newlock2
Changes since 1.11.2.3: +158 -23 lines
Diff to previous 1.11.2.3 (colored) next main 1.12 (colored)

Sync with head.

Revision 1.27 / (download) - annotate - [select for diffs], Mon Jan 29 15:42:50 2007 UTC (7 years, 2 months ago) by hannken
Branch: MAIN
CVS Tags: post-newlock2-merge, newlock2-nbase, newlock2-base
Changes since 1.26: +7 -7 lines
Diff to previous 1.26 (colored)

Change fstrans enum types to upper case.
No functional change.

From Antti Kantee <pooka@netbsd.org>

Revision 1.26 / (download) - annotate - [select for diffs], Fri Jan 26 22:59:49 2007 UTC (7 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.25: +120 -10 lines
Diff to previous 1.25 (colored)

Initial attempt at suspend/snapshot support for userspace file
servers.  This is still pretty much on the level "if it breaks ...".
It should work for single-threaded servers which handle one operation
from start to finish in one go.  Also, it does not yet totally
correctly synchronize metadata and data in some cases.  So needless
to say, it needs improvement, but it is possible that will have to
wait for some lock revampage.

Revision 1.25 / (download) - annotate - [select for diffs], Thu Jan 25 17:43:56 2007 UTC (7 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.24: +9 -8 lines
Diff to previous 1.24 (colored)

don't hold spinlocks (except vnode interlock) when doing vget()

Revision 1.24 / (download) - annotate - [select for diffs], Tue Jan 23 18:27:50 2007 UTC (7 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.23: +6 -7 lines
Diff to previous 1.23 (colored)

fix comment (no functional change)

Revision 1.23 / (download) - annotate - [select for diffs], Fri Jan 19 14:49:09 2007 UTC (7 years, 3 months ago) by hannken
Branch: MAIN
Changes since 1.22: +3 -2 lines
Diff to previous 1.22 (colored)

New file system suspension API to replace vn_start_write and vn_finished_write.
The suspension helpers are now put into file system specific operations.
This means every file system not supporting these helpers cannot be suspended
and therefore snapshots are no longer possible.

Implemented for file systems of type ffs.

The new API is enabled on a kernel option NEWVNGATE.  This option is
not enabled by default in any kernel config.

Presented and discussed on tech-kern with much input from
Bill Studenmund <wrstuden@netbsd.org> and YAMAMOTO Takashi <yamt@netbsd.org>.

Welcome to 4.99.9 (new vfs op vfs_suspendctl).

Revision 1.22 / (download) - annotate - [select for diffs], Mon Jan 15 23:29:08 2007 UTC (7 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.21: +29 -5 lines
Diff to previous 1.21 (colored)

Store puffs_node's on lists hashed with the cookie value instead
of just one flat list.

Revision 1.11.2.3 / (download) - annotate - [select for diffs], Fri Jan 12 01:04:05 2007 UTC (7 years, 3 months ago) by ad
Branch: newlock2
Changes since 1.11.2.2: +135 -40 lines
Diff to previous 1.11.2.2 (colored)

Sync with head.

Revision 1.21 / (download) - annotate - [select for diffs], Tue Jan 9 23:10:23 2007 UTC (7 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.20: +25 -6 lines
Diff to previous 1.20 (colored)

In vfs_sync(), call VOP_PUTPAGES() for dirty vnodes directly instead
of rolling around VOP_FSYNC().  The user server will be given the
VFS_SYNC instruction and it can do its own equivalent of VOP_FSYNC()
if it pleases, no need for the kernel to explicitly issue #{vnodes}
FSYNCs.

Revision 1.20 / (download) - annotate - [select for diffs], Tue Jan 9 18:14:31 2007 UTC (7 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.19: +7 -11 lines
Diff to previous 1.19 (colored)

Introduce flush operations, which the fs server can use to control
kernel caching.  Currently supported are only flushing the name
cache for a directory or flushing the name cache for the entire fs.

Also, get rid of PNODE_INACTIVE status, since it was racy and
essentially didn't work.  All this on top of being useless in the
first place ....

Revision 1.19 / (download) - annotate - [select for diffs], Tue Jan 9 18:01:05 2007 UTC (7 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.18: +3 -4 lines
Diff to previous 1.18 (colored)

in vfs_sync flush page cache only for vnodes with dirty pages, not for
vnodes with pages (dirty or otherwise)

Revision 1.18 / (download) - annotate - [select for diffs], Sun Jan 7 19:28:48 2007 UTC (7 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.17: +52 -4 lines
Diff to previous 1.17 (colored)

vfs sync, flushes regular file data only (user server can take care of
flushing any metadata it might have hidden away)

Revision 1.17 / (download) - annotate - [select for diffs], Tue Jan 2 15:51:22 2007 UTC (7 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.16: +36 -23 lines
Diff to previous 1.16 (colored)

* check userspace version and prevent incompatible mount
* some general maintenance

Revision 1.16.2.2 / (download) - annotate - [select for diffs], Sat Dec 30 20:50:01 2006 UTC (7 years, 3 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.16.2.1: +489 -0 lines
Diff to previous 1.16.2.1 (colored) to branchpoint 1.16 (colored)

sync with head.

Revision 1.15.2.3 / (download) - annotate - [select for diffs], Mon Dec 18 11:42:15 2006 UTC (7 years, 4 months ago) by yamt
Branch: yamt-splraiseipl
Changes since 1.15.2.2: +15 -3 lines
Diff to previous 1.15.2.2 (colored) to branchpoint 1.15 (colored) next main 1.16 (colored)

sync with head.

Revision 1.16.2.1, Sun Dec 10 22:33:31 2006 UTC (7 years, 4 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.16: +0 -489 lines
FILE REMOVED

file puffs_vfsops.c was added on branch yamt-lazymbuf on 2006-12-30 20:50:01 +0000

Revision 1.16 / (download) - annotate - [select for diffs], Sun Dec 10 22:33:31 2006 UTC (7 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-splraiseipl-base5, yamt-splraiseipl-base4
Branch point for: yamt-lazymbuf
Changes since 1.15: +15 -3 lines
Diff to previous 1.15 (colored)

Fix a race condition that would cause the mountpoint to be cleaned
from under someone waiting for the fs server response in puffs_unmount()
if the descriptor was closed during the response wait (such as bug
leading to a crash in fs implementation unmount()).

Revision 1.15.2.2 / (download) - annotate - [select for diffs], Sun Dec 10 07:18:38 2006 UTC (7 years, 4 months ago) by yamt
Branch: yamt-splraiseipl
Changes since 1.15.2.1: +477 -0 lines
Diff to previous 1.15.2.1 (colored) to branchpoint 1.15 (colored)

sync with head.

Revision 1.15.2.1, Sat Dec 9 16:11:51 2006 UTC (7 years, 4 months ago) by yamt
Branch: yamt-splraiseipl
Changes since 1.15: +0 -477 lines
FILE REMOVED

file puffs_vfsops.c was added on branch yamt-splraiseipl on 2006-12-10 07:18:38 +0000

Revision 1.15 / (download) - annotate - [select for diffs], Sat Dec 9 16:11:51 2006 UTC (7 years, 4 months ago) by chs
Branch: MAIN
CVS Tags: yamt-splraiseipl-base3
Branch point for: yamt-splraiseipl
Changes since 1.14: +4 -4 lines
Diff to previous 1.14 (colored)

a smorgasbord of improvements to vnode locking and path lookup:
 - LOCKPARENT is no longer relevant for lookup(), relookup() or VOP_LOOKUP().
   these now always return the parent vnode locked.  namei() works as before.
   lookup() and various other paths no longer acquire vnode locks in the
   wrong order via vrele().  fixes PR 32535.
   as a nice side effect, path lookup is also up to 25% faster.
 - the above allows us to get rid of PDIRUNLOCK.
 - also get rid of WANTPARENT (just use LOCKPARENT and unlock it).
 - remove an assumption in layer_node_find() that all file systems implement
   a recursive VOP_LOCK() (unionfs doesn't).
 - require that all file systems supply vfs_vptofh and vfs_fhtovp routines.
   fill in eopnotsupp() for file systems that don't support being exported
   and remove the checks for NULL.  (layerfs calls these without checking.)
 - in union_lookup1(), don't change refcounts in the ISDOTDOT case, just
   adjust which vnode is locked.  fixes PR 33374.
 - apply fixes for ufs_rename() from ufs_vnops.c rev. 1.61 to ext2fs_rename().

Revision 1.14 / (download) - annotate - [select for diffs], Thu Dec 7 22:06:02 2006 UTC (7 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.13: +3 -4 lines
Diff to previous 1.13 (colored)

In case of an error, return an error.  Otherwise the worst case was
that dostatvfs() wrote to a recently deceased struct mount.

Revision 1.13 / (download) - annotate - [select for diffs], Fri Dec 1 12:48:31 2006 UTC (7 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: netbsd-4-base
Branch point for: netbsd-4
Changes since 1.12: +3 -3 lines
Diff to previous 1.12 (colored)

prefix kernel flags with PUFFS_KFLAG to have a separate namespace
from the library flags

Revision 1.12 / (download) - annotate - [select for diffs], Fri Dec 1 12:37:41 2006 UTC (7 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.11: +3 -2 lines
Diff to previous 1.11 (colored)

don't call the fs server for all operations, only those it has told
us that it implements

Revision 1.11.2.2 / (download) - annotate - [select for diffs], Sat Nov 18 21:39:20 2006 UTC (7 years, 5 months ago) by ad
Branch: newlock2
Changes since 1.11.2.1: +469 -0 lines
Diff to previous 1.11.2.1 (colored)

Sync with head.

Revision 1.11.2.1, Sat Nov 18 19:46:32 2006 UTC (7 years, 5 months ago) by ad
Branch: newlock2
Changes since 1.11: +0 -477 lines
FILE REMOVED

file puffs_vfsops.c was added on branch newlock2 on 2006-11-18 21:39:20 +0000

Revision 1.11 / (download) - annotate - [select for diffs], Sat Nov 18 19:46:32 2006 UTC (7 years, 5 months ago) by pooka
Branch: MAIN
Branch point for: newlock2
Changes since 1.10: +4 -7 lines
Diff to previous 1.10 (colored)

Always override f_iosize from stat() to DEV_BSIZE for now.  Places such
as vnd use the information, so until "dealing with it" is defined, it's
overriden by the kernel.

Revision 1.10 / (download) - annotate - [select for diffs], Sat Nov 18 12:50:59 2006 UTC (7 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.9: +8 -2 lines
Diff to previous 1.9 (colored)

prevent value 0 for mnt_stat.f_iosize, it is sometimes used as a divider

Revision 1.9 / (download) - annotate - [select for diffs], Sat Nov 18 12:39:48 2006 UTC (7 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.8: +6 -4 lines
Diff to previous 1.8 (colored)

Require statvfs info from startreq so that we have that info available.
Also, don't pass fsid to userspace and just fill it in the kernel.

Revision 1.8 / (download) - annotate - [select for diffs], Fri Nov 17 17:48:02 2006 UTC (7 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.7: +5 -2 lines
Diff to previous 1.7 (colored)

Introduce uncached operation, makes sense when the file system backend
can be modified from elsewhere than the file system interface

Revision 1.7 / (download) - annotate - [select for diffs], Thu Nov 9 13:09:34 2006 UTC (7 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.6: +3 -3 lines
Diff to previous 1.6 (colored)

few renames to better differentiate between mount & start.. plus some
other renaming

Revision 1.6 / (download) - annotate - [select for diffs], Tue Nov 7 22:10:18 2006 UTC (7 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.5: +7 -3 lines
Diff to previous 1.5 (colored)

attach to genfs & support page cache.  most noticeable effect is
mmap and therefore execution of binaries starting to work, some
speed improvements with large file I/O also.  caching semantics
and error case handling most likely need revisiting.

Revision 1.5 / (download) - annotate - [select for diffs], Mon Nov 6 11:44:54 2006 UTC (7 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.4: +13 -2 lines
Diff to previous 1.4 (colored)

make it possible to build & load puffs as an LKM

by Lubomir Kundrak, PR kern/35000

Revision 1.4 / (download) - annotate - [select for diffs], Fri Oct 27 12:25:16 2006 UTC (7 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.3: +3 -2 lines
Diff to previous 1.3 (colored)

support fifos

Revision 1.3 / (download) - annotate - [select for diffs], Thu Oct 26 22:52:47 2006 UTC (7 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.2: +4 -6 lines
Diff to previous 1.2 (colored)

support specfs

Revision 1.2 / (download) - annotate - [select for diffs], Thu Oct 26 13:35:23 2006 UTC (7 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.1: +6 -5 lines
Diff to previous 1.1 (colored)

debug print fixes

Revision 1.1 / (download) - annotate - [select for diffs], Sun Oct 22 22:43:23 2006 UTC (7 years, 5 months ago) by pooka
Branch: MAIN

kernel portion of puffs - the Pass-to-Userspace Framework File System.
It contains the VFS attachment and userspace message-passing interface.

This work was initially started and completed for Google SoC 2005
and tweaked to work a bit better in the past few weeks.  While
being far from complete, it is functional enough to be able and
stable to host a fairly general-purpose in-memory file system in
userspace.  Even so, puffs should be considered experimental and
no binary compatibility for interfaces or crash-freedom or zero
security implications should be relied upon just yet.

The GSoC project was mentored by William Studenmund and the final
review for the code was done by Christos.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>