The NetBSD Project

CVS log for src/lib/libpuffs/puffs.c

[BACK] Up to [cvs.NetBSD.org] / src / lib / libpuffs

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.129 / (download) - annotate - [select for diffs], Tue Apr 19 20:32:17 2022 UTC (23 months, 1 week ago) by rillig
Branch: MAIN
CVS Tags: netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, HEAD
Changes since 1.128: +4 -4 lines
Diff to previous 1.128 (colored) to selected 1.20 (colored)

lib: remove CONSTCOND comment

Since 2021-01-31, lint doesn't need it anymore for the common pattern of
'do ... while (0)'.

Revision 1.128 / (download) - annotate - [select for diffs], Sat Jan 22 07:35:26 2022 UTC (2 years, 2 months ago) by pho
Branch: MAIN
Changes since 1.127: +26 -18 lines
Diff to previous 1.127 (colored) to selected 1.20 (colored)

Allow calling puffs_mount(3) before puffs_daemon(3)

puffs_daemon(3) creates a pipe before forking, and the parent process
waits for the child to either complete puffs_mount(3) or fail. If a
user calls puffs_daemon(3) after puffs_mount(3), the function
deadlocks. While this error-reporting functionality is really a nice
thing to have, deadlocking is not great. If the filesystem has already
been mounted, puffs_mount(3) should just daemonize the process and
return.

This became an issue because fuse_daemonize(3) in FUSE API had no such
requirement and some FUSE filesystems in the wild suffered deadlocks.

Revision 1.127 / (download) - annotate - [select for diffs], Fri Dec 3 17:12:17 2021 UTC (2 years, 3 months ago) by pho
Branch: MAIN
Changes since 1.126: +4 -4 lines
Diff to previous 1.126 (colored) to selected 1.20 (colored)

Use size_t in place of voff_t in puffs_setrootinfo(3)

Chuck Silvers pointed out that voff_t was also supposed to be
kernel-only. The correct type to use in userland would be off_t, but
since changing vsize_t to either voff_t or off_t is an ABI change on
32-bit platforms, we use size_t knowing that it is technically
incorrect.

Revision 1.126 / (download) - annotate - [select for diffs], Fri Dec 3 14:00:59 2021 UTC (2 years, 3 months ago) by pho
Branch: MAIN
Changes since 1.125: +3 -3 lines
Diff to previous 1.125 (colored) to selected 1.20 (colored)

Avoid using register_t or vsize_t in <puffs.h>

<puffs.h> is a user-space header, and should not use any of
kernel-only types. It's not reasonable to require user-land
filesystems to #define _KERNTYPES.

Revision 1.125 / (download) - annotate - [select for diffs], Sat Oct 30 10:34:18 2021 UTC (2 years, 4 months ago) by nia
Branch: MAIN
Changes since 1.124: +7 -5 lines
Diff to previous 1.124 (colored) to selected 1.20 (colored)

puffs(3): Replace realloc(x * y) with reallocarr

Revision 1.123.4.1 / (download) - annotate - [select for diffs], Mon Jun 10 22:05:26 2019 UTC (4 years, 9 months ago) by christos
Branch: phil-wifi
Changes since 1.123: +11 -9 lines
Diff to previous 1.123 (colored) next main 1.124 (colored) to selected 1.20 (colored)

Sync with HEAD

Revision 1.123.2.1 / (download) - annotate - [select for diffs], Sat Jul 28 04:37:23 2018 UTC (5 years, 8 months ago) by pgoyette
Branch: pgoyette-compat
CVS Tags: pgoyette-compat-merge-20190127
Changes since 1.123: +11 -9 lines
Diff to previous 1.123 (colored) next main 1.124 (colored) to selected 1.20 (colored)

Sync with HEAD

Revision 1.124 / (download) - annotate - [select for diffs], Sat Jun 30 16:05:44 2018 UTC (5 years, 9 months ago) by christos
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, is-mlppp-base, is-mlppp, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Changes since 1.123: +11 -9 lines
Diff to previous 1.123 (colored) to selected 1.20 (colored)

use a switch.

Revision 1.123 / (download) - annotate - [select for diffs], Thu Feb 8 09:05:17 2018 UTC (6 years, 1 month ago) by dholland
Branch: MAIN
CVS Tags: phil-wifi-base, pgoyette-compat-base, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315
Branch point for: phil-wifi, pgoyette-compat
Changes since 1.122: +3 -3 lines
Diff to previous 1.122 (colored) to selected 1.20 (colored)

Typos.

Revision 1.122 / (download) - annotate - [select for diffs], Sun Nov 5 15:33:15 2017 UTC (6 years, 4 months ago) by christos
Branch: MAIN
Changes since 1.121: +10 -9 lines
Diff to previous 1.121 (colored) to selected 1.20 (colored)

fix error messages (use __func__, quotes)
also differentiate between canonical and non-relative.

Revision 1.121 / (download) - annotate - [select for diffs], Wed May 31 17:56:00 2017 UTC (6 years, 9 months ago) by christos
Branch: MAIN
CVS Tags: perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-8-base, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, matt-nb8-mediatek-base, matt-nb8-mediatek
Changes since 1.120: +6 -6 lines
Diff to previous 1.120 (colored) to selected 1.20 (colored)

Adjust to prototype.

Revision 1.120 / (download) - annotate - [select for diffs], Wed Jun 17 00:15:26 2015 UTC (8 years, 9 months ago) by christos
Branch: MAIN
CVS Tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, localcount-20160914, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Changes since 1.119: +12 -14 lines
Diff to previous 1.119 (colored) to selected 1.20 (colored)

fix error messages

Revision 1.119 / (download) - annotate - [select for diffs], Mon Dec 22 08:16:21 2014 UTC (9 years, 3 months ago) by manu
Branch: MAIN
Changes since 1.118: +7 -3 lines
Diff to previous 1.118 (colored) to selected 1.20 (colored)

Do not warn about relative path because of trailing slash

libpuffs calls realpath() to obtain an absolute path to use for mounting.
If the obtained path is different from the one given by the caller, a
warning is issued. This included the situation where the path passed by
the caller just have trailing slashes, a situation where we just want them
to be striped without a warning.

Revision 1.117.18.1 / (download) - annotate - [select for diffs], Wed Nov 5 18:11:31 2014 UTC (9 years, 4 months ago) by snj
Branch: netbsd-7
CVS Tags: netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0
Changes since 1.117: +4 -2 lines
Diff to previous 1.117 (colored) next main 1.118 (colored) to selected 1.20 (colored)

Pull up following revision(s) (requested by manu in ticket #181):
	lib/libperfuse/fuse.h: revision 1.6
	lib/libperfuse/ops.c: revision 1.78
	lib/libperfuse/perfuse.c: revision 1.35
	lib/libperfuse/perfuse_priv.h: revision 1.36
	lib/libpuffs/dispatcher.c: revision 1.48
	lib/libpuffs/opdump.c: revision 1.37
	lib/libpuffs/puffs.c: revision 1.118
	lib/libpuffs/puffs.h: revision 1.126
	lib/libpuffs/puffs_ops.3: revisions 1.40-1.41
	sys/fs/puffs/puffs_msgif.h: revision 1.82-1.83
	sys/fs/puffs/puffs_msgif.h: revision 1.82
	sys/fs/puffs/puffs_vnops.c: revision 1.196
Add PUFFS support for fallocate and fdiscard operations
--
libpuffs support for fallocate and fdiscard operations
--
Add PUFFS_HAVE_FALLOCATE in puffs_msgif.h so that filesystem can decide
at build time wether fallocate is usable
--
FUSE fallocate support
There seems to be no fdiscard FUSE operation at the moment, hence that
one is left unused.

Revision 1.118 / (download) - annotate - [select for diffs], Fri Oct 31 13:56:04 2014 UTC (9 years, 4 months ago) by manu
Branch: MAIN
Changes since 1.117: +4 -2 lines
Diff to previous 1.117 (colored) to selected 1.20 (colored)

libpuffs support for fallocate and fdiscard operations

Revision 1.116.4.1 / (download) - annotate - [select for diffs], Tue Apr 17 00:05:31 2012 UTC (11 years, 11 months ago) by yamt
Branch: yamt-pagecache
CVS Tags: yamt-pagecache-tag8
Changes since 1.116: +23 -2 lines
Diff to previous 1.116 (colored) next main 1.117 (colored) to selected 1.20 (colored)

sync with head

Revision 1.92.4.7 / (download) - annotate - [select for diffs], Wed Jan 25 18:22:10 2012 UTC (12 years, 2 months ago) by riz
Branch: netbsd-5
CVS Tags: netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2
Changes since 1.92.4.6: +3 -2 lines
Diff to previous 1.92.4.6 (colored) to branchpoint 1.92 (colored) next main 1.93 (colored) to selected 1.20 (colored)

Pull up following revision(s) (requested by manu in ticket #1706):
	lib/libpuffs/puffs.c: revision 1.108
signal pathconf in the vector of supported ops

Revision 1.117 / (download) - annotate - [select for diffs], Mon Nov 14 01:27:42 2011 UTC (12 years, 4 months ago) by chs
Branch: MAIN
CVS Tags: yamt-pagecache-base9, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, tls-maxphys-base, tls-maxphys, tls-earlyentropy-base, tls-earlyentropy, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, netbsd-7-base, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, 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-6-RELEASE, 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, netbsd-6, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, agc-symver-base, agc-symver
Branch point for: netbsd-7
Changes since 1.116: +23 -2 lines
Diff to previous 1.116 (colored) to selected 1.20 (colored)

fix crashes caused by using the results of getcontext()
after the caller returns.

Revision 1.92.4.6 / (download) - annotate - [select for diffs], Sun Jul 17 15:36:03 2011 UTC (12 years, 8 months ago) by riz
Branch: netbsd-5
Changes since 1.92.4.5: +58 -3 lines
Diff to previous 1.92.4.5 (colored) to branchpoint 1.92 (colored) to selected 1.20 (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.92.4.5 / (download) - annotate - [select for diffs], Sat Jun 18 16:17:38 2011 UTC (12 years, 9 months ago) by bouyer
Branch: netbsd-5
Changes since 1.92.4.4: +3 -2 lines
Diff to previous 1.92.4.4 (colored) to branchpoint 1.92 (colored) to selected 1.20 (colored)

Pull up following revision(s) (requested by manu in ticket #1623):
	lib/libpuffs/puffs.c: revision 1.116 via patch
	sys/fs/puffs/puffs_vnops.c: revision 1.151 via patch
Call advlock method if supplied

Revision 1.116 / (download) - annotate - [select for diffs], Tue May 3 13:16:47 2011 UTC (12 years, 10 months ago) by manu
Branch: MAIN
CVS Tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, cherry-xenmp-base, cherry-xenmp
Branch point for: yamt-pagecache
Changes since 1.115: +3 -2 lines
Diff to previous 1.115 (colored) to selected 1.20 (colored)

Call advlock method if supplied

Revision 1.115 / (download) - annotate - [select for diffs], Mon Dec 6 14:50:34 2010 UTC (13 years, 3 months ago) by pooka
Branch: MAIN
CVS Tags: matt-mips64-premerge-20101231, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Changes since 1.114: +3 -5 lines
Diff to previous 1.114 (colored) to selected 1.20 (colored)

Remove PUFFS_WITH_THREADS ifdef garbage, just use libc weak symbols.

Revision 1.114 / (download) - annotate - [select for diffs], Tue Jul 6 21:58:18 2010 UTC (13 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.113: +3 -3 lines
Diff to previous 1.113 (colored) to selected 1.20 (colored)

unwhine lint

Revision 1.113 / (download) - annotate - [select for diffs], Tue Jul 6 18:22:20 2010 UTC (13 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.112: +14 -13 lines
Diff to previous 1.112 (colored) to selected 1.20 (colored)

stat mount target path only if we're actually goint to use it.
This avoids errors from the comfd case when the mount target does
not exist in our local namespace.

Revision 1.112 / (download) - annotate - [select for diffs], Tue Jul 6 18:01:14 2010 UTC (13 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.111: +6 -2 lines
Diff to previous 1.111 (colored) to selected 1.20 (colored)

set time_t compat where necessary

Revision 1.111 / (download) - annotate - [select for diffs], Tue Jul 6 13:27:16 2010 UTC (13 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.110: +5 -5 lines
Diff to previous 1.110 (colored) to selected 1.20 (colored)

When using the top secret PUFFS_COMFD model, write out size of the
puffs kernel args before the contents.  This allows parties which
have no clue about the contents to proxy the protocol easily.

Revision 1.110 / (download) - annotate - [select for diffs], Mon Jun 7 11:22:36 2010 UTC (13 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.109: +2 -5 lines
Diff to previous 1.109 (colored) to selected 1.20 (colored)

Reenable pathconf now that the retval argument is register_t.

Revision 1.109 / (download) - annotate - [select for diffs], Sun Jun 6 23:11:05 2010 UTC (13 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.108: +5 -2 lines
Diff to previous 1.108 (colored) to selected 1.20 (colored)

Actually, disable pathconf for a while longer: the retval needs a
little finetuning (not that everyone is jumping right to using it,
but fixing will have to wait until tomorrow, and who knows what
i'll forget during the night and how long it will eventually take).

Revision 1.108 / (download) - annotate - [select for diffs], Sun Jun 6 22:44:54 2010 UTC (13 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.107: +3 -2 lines
Diff to previous 1.107 (colored) to selected 1.20 (colored)

signal pathconf in the vector of supported ops

Revision 1.107 / (download) - annotate - [select for diffs], Fri May 21 10:50:52 2010 UTC (13 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.106: +13 -8 lines
Diff to previous 1.106 (colored) to selected 1.20 (colored)

* support extended attributes
* bump major due to structure growth
* add some spare space
* remove ABI sillyness

Revision 1.106 / (download) - annotate - [select for diffs], Wed May 19 12:16:45 2010 UTC (13 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.105: +3 -3 lines
Diff to previous 1.105 (colored) to selected 1.20 (colored)

remove three years out-of-date comment

Revision 1.92.8.1 / (download) - annotate - [select for diffs], Wed Apr 21 05:28:11 2010 UTC (13 years, 11 months ago) by matt
Branch: matt-nb5-mips64
CVS Tags: matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-k15
Changes since 1.92: +55 -20 lines
Diff to previous 1.92 (colored) next main 1.93 (colored) to selected 1.20 (colored)

sync to netbsd-5

Revision 1.105 / (download) - annotate - [select for diffs], Tue Jan 12 18:42:38 2010 UTC (14 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.104: +52 -9 lines
Diff to previous 1.104 (colored) to selected 1.20 (colored)

Add convenience routine puffs_unmountonsignal(), which does exactly that.

Revision 1.104 / (download) - annotate - [select for diffs], Thu Jan 7 23:03:26 2010 UTC (14 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.103: +3 -3 lines
Diff to previous 1.103 (colored) to selected 1.20 (colored)

Use typecast instead of ULL for a less whiny lint on LP64.

Revision 1.103 / (download) - annotate - [select for diffs], Thu Jan 7 22:49:19 2010 UTC (14 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.102: +26 -21 lines
Diff to previous 1.102 (colored) to selected 1.20 (colored)

Rewrite puffs_exit() in terms of the PUFFSOP_UNMOUNT kernel request.
Now server exit is a lot quite cleaner than previously.

Revision 1.102 / (download) - annotate - [select for diffs], Thu Jan 7 22:40:11 2010 UTC (14 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.101: +3 -3 lines
Diff to previous 1.101 (colored) to selected 1.20 (colored)

Set high bit on server->kernel requests to better differentiate
between the direction of the request.

Revision 1.101 / (download) - annotate - [select for diffs], Sat Dec 5 20:54:10 2009 UTC (14 years, 3 months ago) by pooka
Branch: MAIN
CVS Tags: matt-premerge-20091211
Changes since 1.100: +15 -5 lines
Diff to previous 1.100 (colored) to selected 1.20 (colored)

Add an error handler which syslogs but does not abort() and make it
the default.  Most servers just shovel bits from their backend to
the kernel without checking the contents and dumping core in case
the backend gives garbage is a bit harsh.

Revision 1.92.4.4 / (download) - annotate - [select for diffs], Tue Oct 27 20:37:38 2009 UTC (14 years, 5 months ago) by bouyer
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-5-RELEASE, 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.92.4.3: +22 -6 lines
Diff to previous 1.92.4.3 (colored) to branchpoint 1.92 (colored) to selected 1.20 (colored)

Pull up following revision(s) (requested by pooka in ticket #1105):
	lib/libpuffs/puffs.h: revision 1.112
	lib/libpuffs/puffs.c: revision 1.100
	distrib/sets/lists/base/md.amd64: patch
	distrib/sets/lists/base/md.sparc64: patch
	distrib/sets/lists/base/shl.mi: patch
	lib/libpuffs/shlib_version: patch

Make it possible to supply parameters to puffs_init() later (but
before puffs_mount()).

Revision 1.100 / (download) - annotate - [select for diffs], Sun Oct 18 19:09:20 2009 UTC (14 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.99: +22 -6 lines
Diff to previous 1.99 (colored) to selected 1.20 (colored)

Make it possible to supply parameters to puffs_init() later (but
before puffs_mount()).

Revision 1.92.4.3 / (download) - annotate - [select for diffs], Sun Oct 18 12:46:07 2009 UTC (14 years, 5 months ago) by sborrill
Branch: netbsd-5
Changes since 1.92.4.2: +5 -10 lines
Diff to previous 1.92.4.2 (colored) to branchpoint 1.92 (colored) to selected 1.20 (colored)

Pull up the following revisions(s) (requested by pooka in ticket #1100):
	lib/libpuffs/dispatcher.c:	revision 1.33
	lib/libpuffs/puffs.c:	revision 1.99
	lib/libpuffs/puffs.h:	revision 1.111
	sys/fs/puffs/puffs_msgif.h:	revision 1.67 via patch
	sys/fs/puffs/puffs_vnops.c:	revision 1.136

Support VOP_ABORTOP() in puffs.

Revision 1.99 / (download) - annotate - [select for diffs], Sat Oct 17 23:19:52 2009 UTC (14 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.98: +5 -10 lines
Diff to previous 1.98 (colored) to selected 1.20 (colored)

Dispatch puffs_node_abortop().

Note: We use the storage of puffs_cache_write from puffs_ops for
this purpose.  It's not issued by the kernel and hence currently
unused, and this saves us from the trouble of bumping the lib major
version.

Revision 1.92.4.2 / (download) - annotate - [select for diffs], Fri Oct 16 12:10:54 2009 UTC (14 years, 5 months ago) by sborrill
Branch: netbsd-5
Changes since 1.92.4.1: +26 -9 lines
Diff to previous 1.92.4.1 (colored) to branchpoint 1.92 (colored) to selected 1.20 (colored)

Pull up the following revisions(s) (requested by pooka in ticket #1095):
	lib/libpuffs/puffs.c:	revision 1.94
	lib/libpuffs/puffs.h:	revision 1.110

Add puffs_cancel(), which allows to back down after puffs_init()
and before puffs_mount().

Revision 1.92.4.1 / (download) - annotate - [select for diffs], Fri Oct 16 12:07:23 2009 UTC (14 years, 5 months ago) by sborrill
Branch: netbsd-5
Changes since 1.92: +9 -2 lines
Diff to previous 1.92 (colored) to selected 1.20 (colored)

Pull up the following revisions(s) (requested by pooka in ticket #1094):
	lib/libpuffs/puffs.3:	revision 1.45
	lib/libpuffs/puffs.c:	revision 1.93
	lib/libpuffs/puffs.h:	revision 1.109

Add function puffs_setspecific(pu, private) which can be used to set the
specific data after the call to puffs_init().

Revision 1.98 / (download) - annotate - [select for diffs], Thu Jan 8 02:28:08 2009 UTC (15 years, 2 months ago) by lukem
Branch: MAIN
CVS Tags: jym-xensuspend-nbase, jym-xensuspend-base, jym-xensuspend
Changes since 1.97: +4 -4 lines
Diff to previous 1.97 (colored) to selected 1.20 (colored)

fix some sign comparison warnings

Revision 1.97 / (download) - annotate - [select for diffs], Sat Dec 13 11:53:25 2008 UTC (15 years, 3 months ago) by dsl
Branch: MAIN
Changes since 1.96: +4 -4 lines
Diff to previous 1.96 (colored) to selected 1.20 (colored)

Actually we need 'long int' to avoif a stupid 'truncating long to int'
warning.

Revision 1.96 / (download) - annotate - [select for diffs], Sat Dec 13 11:48:46 2008 UTC (15 years, 3 months ago) by dsl
Branch: MAIN
Changes since 1.95: +3 -3 lines
Diff to previous 1.95 (colored) to selected 1.20 (colored)

Change type of 'n' to 'int' so that it can be printed with %d.
The domain of the value is [-1..sizeof (int)] so a type of 'int' is fine.

Revision 1.95 / (download) - annotate - [select for diffs], Fri Dec 12 19:56:12 2008 UTC (15 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.94: +5 -3 lines
Diff to previous 1.94 (colored) to selected 1.20 (colored)

Close write-end of daemonpipe in reader to get EOF if the writer
goes awol.

Revision 1.94 / (download) - annotate - [select for diffs], Fri Dec 12 19:45:16 2008 UTC (15 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.93: +26 -9 lines
Diff to previous 1.93 (colored) to selected 1.20 (colored)

Add puffs_cancel(), which allows to back down after puffs_init()
and before puffs_mount().
(this should actually be integrated with puffs_exit(), but that
routine is currently so non-sensible that I didn't bother now)

Revision 1.93 / (download) - annotate - [select for diffs], Fri Dec 12 18:59:53 2008 UTC (15 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.92: +9 -2 lines
Diff to previous 1.92 (colored) to selected 1.20 (colored)

add:
     puffs_setspecific(pu, private)
	Can be used to set the specific data after the call to
	puffs_init().

Revision 1.89.6.1 / (download) - annotate - [select for diffs], Thu Sep 18 04:39:24 2008 UTC (15 years, 6 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.89: +24 -9 lines
Diff to previous 1.89 (colored) next main 1.90 (colored) to selected 1.20 (colored)

Sync with wrstuden-revivesa-base-2.

Revision 1.92 / (download) - annotate - [select for diffs], Tue Aug 12 19:44:39 2008 UTC (15 years, 7 months ago) by pooka
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, 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, 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
Branch point for: netbsd-5, matt-nb5-mips64
Changes since 1.91: +4 -4 lines
Diff to previous 1.91 (colored) to selected 1.20 (colored)

Replace void * by puffs_cookie_t where appropriate.  No functional change.

Revision 1.91 / (download) - annotate - [select for diffs], Mon Aug 11 16:23:37 2008 UTC (15 years, 7 months ago) by pooka
Branch: MAIN
Changes since 1.90: +3 -2 lines
Diff to previous 1.90 (colored) to selected 1.20 (colored)

clear cached puffs_cc's in puffs_exit()

Revision 1.90 / (download) - annotate - [select for diffs], Mon Aug 11 15:59:01 2008 UTC (15 years, 7 months ago) by pooka
Branch: MAIN
Changes since 1.89: +21 -7 lines
Diff to previous 1.89 (colored) to selected 1.20 (colored)

* make sure we come out of mainloop in the main context.  otherwise in
  certain cases the server would jump to hyperspace when unmounted
* sprinkle some debug prints

Revision 1.62.2.4 / (download) - annotate - [select for diffs], Sun Mar 23 00:40:29 2008 UTC (16 years ago) by matt
Branch: matt-armv6
Changes since 1.62.2.3: +99 -66 lines
Diff to previous 1.62.2.3 (colored) next main 1.63 (colored) to selected 1.20 (colored)

sync with HEAD

Revision 1.89 / (download) - annotate - [select for diffs], Mon Jan 28 18:35:50 2008 UTC (16 years, 2 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-pf42-base, yamt-pf42, wrstuden-revivesa-base-1, wrstuden-revivesa-base, matt-armv6-nbase, keiichi-mipv6-base, keiichi-mipv6, hpcarm-cleanup-nbase, hpcarm-cleanup-base
Branch point for: wrstuden-revivesa
Changes since 1.88: +79 -60 lines
Diff to previous 1.88 (colored) to selected 1.20 (colored)

Implement lazy contexts for file systems using puffs_mainloop().
Previously each request was executed on its own callcontext and
switched to every time the request was being processed.  Now requests
borrow the mainloop context and switch only if/when they yield.
This takes two context switches away from a file system request
bringing down the typical amounts 2->0 (e.g. dtfs) and 4->2 (e.g.
psshfs).

The interfaces for manually executing requests changed a bit:
puffs_dispatch_create() and puffs_dispatch_exec() must now be used.
They are not tested, as nothing in-tree wants them and I doubt
anyone else is really interested in them either.

Also do some misc code cleanup related to execution contexts.  The
"work-in-progress checkpoint" committed over a year ago was starting
to look slightly weed-infested.

Revision 1.88 / (download) - annotate - [select for diffs], Wed Jan 16 21:30:00 2008 UTC (16 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.87: +5 -4 lines
Diff to previous 1.87 (colored) to selected 1.20 (colored)

Cache a number of execution contexts instead of re-initializing
them every time.  Speeds up pure in-memory file systems such as
sysctlfs or dtfs quite a bit.  For actual I/O-workhorses the result
is of course less tasty.

Revision 1.87 / (download) - annotate - [select for diffs], Wed Jan 16 00:29:42 2008 UTC (16 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.86: +14 -4 lines
Diff to previous 1.86 (colored) to selected 1.20 (colored)

Use PROT_NONE page to protect bottom of stack from overrun

Revision 1.86 / (download) - annotate - [select for diffs], Mon Jan 14 13:57:26 2008 UTC (16 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.85: +10 -7 lines
Diff to previous 1.85 (colored) to selected 1.20 (colored)

Introduce PUFFS_STACKSIZE_MIN to avoid overloading 0 and getting
a warning from the library when really wanting to say "just the
minimum, please".

Revision 1.62.2.3 / (download) - annotate - [select for diffs], Wed Jan 9 01:36:48 2008 UTC (16 years, 2 months ago) by matt
Branch: matt-armv6
Changes since 1.62.2.2: +251 -84 lines
Diff to previous 1.62.2.2 (colored) to selected 1.20 (colored)

sync with HEAD

Revision 1.85 / (download) - annotate - [select for diffs], Tue Jan 8 00:22:31 2008 UTC (16 years, 2 months ago) by pooka
Branch: MAIN
CVS Tags: matt-armv6-base
Changes since 1.84: +2 -3 lines
Diff to previous 1.84 (colored) to selected 1.20 (colored)

liberate gas-huffin crack-puffin' assert

Revision 1.84 / (download) - annotate - [select for diffs], Wed Jan 2 18:11:01 2008 UTC (16 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.83: +3 -3 lines
Diff to previous 1.83 (colored) to selected 1.20 (colored)

fix pasto

Revision 1.83 / (download) - annotate - [select for diffs], Wed Jan 2 17:57:51 2008 UTC (16 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.82: +5 -2 lines
Diff to previous 1.82 (colored) to selected 1.20 (colored)

Also pass fromname in the "distributed" case.

Revision 1.82 / (download) - annotate - [select for diffs], Wed Jan 2 14:27:42 2008 UTC (16 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.81: +67 -21 lines
Diff to previous 1.81 (colored) to selected 1.20 (colored)

Provide some transparent "support" for "distributed" file systems.
If the env variable PUFFS_COMFD is set, the descriptor value
contained in it is used for communication instead of opening
/dev/puffs and doing mount(2).

This feature is obviously very undocumented and should not be used
without adult supervision.

Revision 1.81 / (download) - annotate - [select for diffs], Tue Dec 25 20:38:01 2007 UTC (16 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.80: +9 -2 lines
Diff to previous 1.80 (colored) to selected 1.20 (colored)

Add a public interface for setting a cookie mapper.

Revision 1.80 / (download) - annotate - [select for diffs], Wed Dec 5 12:11:56 2007 UTC (16 years, 3 months ago) by pooka
Branch: MAIN
CVS Tags: cube-autoconf-base, cube-autoconf
Changes since 1.79: +15 -4 lines
Diff to previous 1.79 (colored) to selected 1.20 (colored)

Send a response message for flush operations from the kernel instead
of abusing the return value of write(2).

Revision 1.79 / (download) - annotate - [select for diffs], Tue Dec 4 21:24:11 2007 UTC (16 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.78: +79 -60 lines
Diff to previous 1.78 (colored) to selected 1.20 (colored)

Part 3/n of extensive changes to message handling:

Get rid of the original puffs_req(3) framework and use puffs_framebuf(3)
instead for file system requests.  It has the advantage of being
suitable for transporting a distributed message passing protocol
and therefore us being able to run the file system server on any
host.

Ok, puffs is not quite here yet: libpuffs needs to grow request
routing support and the message contents need to be munged into a
host independent format.  Saying which format would be telling,
but it might begin with an X, end in an L and have the 13th character
in the middle.  Keep an eye out for the sequels: Parts 3+m/n.

Revision 1.78 / (download) - annotate - [select for diffs], Thu Nov 29 17:47:55 2007 UTC (16 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.77: +10 -2 lines
Diff to previous 1.77 (colored) to selected 1.20 (colored)

* allocate pcc as a slice from the stack instead of allocating it
  separately
* provide puffs_cc_getcc()

This is in preparation for the removal of you-should-guess-what as
an argument to routines here and there and everywhere.

Revision 1.77 / (download) - annotate - [select for diffs], Mon Nov 26 12:20:21 2007 UTC (16 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.76: +4 -3 lines
Diff to previous 1.76 (colored) to selected 1.20 (colored)

print more info when receiving an abort

Revision 1.76 / (download) - annotate - [select for diffs], Sat Nov 17 16:06:18 2007 UTC (16 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.75: +13 -7 lines
Diff to previous 1.75 (colored) to selected 1.20 (colored)

puffs_mount():
* initialize values better
* always go through "fail" to see if puffs_daemon() needs to be
  woken up
* open device r/w instead of r/o

Revision 1.75 / (download) - annotate - [select for diffs], Fri Nov 16 18:35:10 2007 UTC (16 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.74: +70 -3 lines
Diff to previous 1.74 (colored) to selected 1.20 (colored)

Introduce puffs_daemon(), which works like daemon(3) except that it
also synchronizes with puffs_mount() and does not return (exit) in the
parent process until the file system has been mounted.  This makes
it possible to reliably run e.g. mount_foo jippi /kai ; cd /kai/ee

Revision 1.62.2.2 / (download) - annotate - [select for diffs], Thu Nov 8 11:01:01 2007 UTC (16 years, 4 months ago) by matt
Branch: matt-armv6
CVS Tags: matt-armv6-prevmlocking
Changes since 1.62.2.1: +16 -15 lines
Diff to previous 1.62.2.1 (colored) to selected 1.20 (colored)

sync with -HEAD

Revision 1.62.2.1 / (download) - annotate - [select for diffs], Tue Nov 6 23:11:52 2007 UTC (16 years, 4 months ago) by matt
Branch: matt-armv6
Changes since 1.62: +64 -18 lines
Diff to previous 1.62 (colored) to selected 1.20 (colored)

sync with HEAD

Revision 1.74 / (download) - annotate - [select for diffs], Tue Nov 6 15:09:08 2007 UTC (16 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.73: +16 -15 lines
Diff to previous 1.73 (colored) to selected 1.20 (colored)

Open the kernel descriptor as part of mount(), not init().  Then
it doesn't matter if someone fork()s or does other tricks between
init() and mount() (and besides, now it's where it logically should be).

Revision 1.73 / (download) - annotate - [select for diffs], Mon Nov 5 17:48:17 2007 UTC (16 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.72: +3 -6 lines
Diff to previous 1.72 (colored) to selected 1.20 (colored)

Pull the daemonizing code out of the library mainloop into the file
servers.  Calling daemon() (i.e. fork()ing) inside a library can
cause nice surprises for e.g. threaded programs.  As discussed with
Greg Oster & others.

Revision 1.72 / (download) - annotate - [select for diffs], Mon Oct 29 15:52:45 2007 UTC (16 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.71: +7 -2 lines
Diff to previous 1.71 (colored) to selected 1.20 (colored)

Sprinkle some hackish locks here and there, just enough to allow
libp2k & rump to run multithreaded.

Revision 1.71 / (download) - annotate - [select for diffs], Sun Oct 28 18:40:30 2007 UTC (16 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.70: +11 -2 lines
Diff to previous 1.70 (colored) to selected 1.20 (colored)

Add possibility to set pre- and post callbacks which will be called
for all operations before or after executing the specific callback
(the api is not be final yet, though).

Revision 1.70 / (download) - annotate - [select for diffs], Fri Oct 26 17:35:01 2007 UTC (16 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.69: +3 -2 lines
Diff to previous 1.69 (colored) to selected 1.20 (colored)

Add some very initial support for a threading worker model as an
alternative to the (vastly superior ;) continuation model.  This
is very preliminary stuff and not compiled by default (which it
even won't do without some other patches I cannot commit yet).

The raison d'commit of the patch is a snippet which ensures proper
in-order dispatching of all operations, including those which don't
require a response.  Previously many of them would be dispatched
simultaneosly, e.g. fsync and reclaim on the same node, which
obviously isn't all that nice for correct operation.

Revision 1.69 / (download) - annotate - [select for diffs], Fri Oct 26 13:51:14 2007 UTC (16 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.68: +13 -5 lines
Diff to previous 1.68 (colored) to selected 1.20 (colored)

mmap stacks, makes it possible to align them

Revision 1.68 / (download) - annotate - [select for diffs], Thu Oct 25 10:59:45 2007 UTC (16 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.67: +4 -4 lines
Diff to previous 1.67 (colored) to selected 1.20 (colored)

Make pu_haskq a flag instead of its own variable.

Revision 1.67 / (download) - annotate - [select for diffs], Sun Oct 21 19:25:58 2007 UTC (16 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.66: +12 -2 lines
Diff to previous 1.66 (colored) to selected 1.20 (colored)

Add puffs_cc_schedule() which marks a pcc runnable and will pass
execution to it when in the main loop the next time.

Revision 1.66 / (download) - annotate - [select for diffs], Thu Oct 11 19:41:15 2007 UTC (16 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.65: +6 -9 lines
Diff to previous 1.65 (colored) to selected 1.20 (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.65 / (download) - annotate - [select for diffs], Mon Oct 1 21:10:50 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.64: +4 -3 lines
Diff to previous 1.64 (colored) to selected 1.20 (colored)

Pass reason string to pu_errnotify.  Print it in the default
version before aborting.

Revision 1.64 / (download) - annotate - [select for diffs], Thu Sep 27 23:11:41 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.63: +3 -2 lines
Diff to previous 1.63 (colored) to selected 1.20 (colored)

silence lint.  also noticed by xtraeme

Revision 1.63 / (download) - annotate - [select for diffs], Thu Sep 27 21:14:49 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.62: +19 -2 lines
Diff to previous 1.62 (colored) to selected 1.20 (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.62 / (download) - annotate - [select for diffs], Sat Aug 11 18:04:50 2007 UTC (16 years, 7 months ago) by pooka
Branch: MAIN
Branch point for: matt-armv6
Changes since 1.61: +12 -3 lines
Diff to previous 1.61 (colored) to selected 1.20 (colored)

run realpath() on the mountpath

Revision 1.61.4.2 / (download) - annotate - [select for diffs], Fri Jul 20 13:14:56 2007 UTC (16 years, 8 months ago) by pooka
Branch: matt-mips64
Changes since 1.61.4.1: +638 -0 lines
Diff to previous 1.61.4.1 (colored) to branchpoint 1.61 (colored) next main 1.62 (colored) to selected 1.20 (colored)

Add puffs_framev_enqueue_waitevent, which waits for read/write/error
events from an i/o descriptor.  It yields until an event happens
and continues execution when the event loop notices the event has
happened.

Revision 1.61.4.1, Fri Jul 20 13:14:55 2007 UTC (16 years, 8 months ago) by pooka
Branch: matt-mips64
Changes since 1.61: +0 -638 lines
FILE REMOVED

file puffs.c was added on branch matt-mips64 on 2007-07-20 13:14:56 +0000

Revision 1.61 / (download) - annotate - [select for diffs], Fri Jul 20 13:14:55 2007 UTC (16 years, 8 months ago) by pooka
Branch: MAIN
CVS Tags: matt-mips64-base, hpcarm-cleanup
Branch point for: matt-mips64
Changes since 1.60: +14 -4 lines
Diff to previous 1.60 (colored) to selected 1.20 (colored)

Add puffs_framev_enqueue_waitevent, which waits for read/write/error
events from an i/o descriptor.  It yields until an event happens
and continues execution when the event loop notices the event has
happened.

Revision 1.60 / (download) - annotate - [select for diffs], Thu Jul 19 12:52:28 2007 UTC (16 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.59: +36 -24 lines
Diff to previous 1.59 (colored) to selected 1.20 (colored)

Don't float puffs_kargs needlessly around after mount, saves
a couple k of memory (and there was much rejoycing!)

Revision 1.59 / (download) - annotate - [select for diffs], Thu Jul 19 07:54:46 2007 UTC (16 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.58: +7 -4 lines
Diff to previous 1.58 (colored) to selected 1.20 (colored)

Use ioctl(PUFFSREQSIZEOP) instead of mount(MNT_GETARGS) to fetch
the maximum request size after mount.  Calling mount(MNT_GETARGS)
from the file server is currently not kosher, as it vrele()s the
root vnode, potentially causing an inactive, which the file server
cannot handle while it itself is inactive in the kernel (deadlock).

Revision 1.58 / (download) - annotate - [select for diffs], Tue Jul 17 11:34:51 2007 UTC (16 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.57: +11 -7 lines
Diff to previous 1.57 (colored) to selected 1.20 (colored)

* add mntfromname parameter to puffs_init()
* set it in file servers

Revision 1.57 / (download) - annotate - [select for diffs], Sat Jul 14 16:02:14 2007 UTC (16 years, 8 months ago) by dsl
Branch: MAIN
Changes since 1.56: +5 -3 lines
Diff to previous 1.56 (colored) to selected 1.20 (colored)

Add new 'data_len' parameter to mount system call.
Add an additional call with MNT_GETARGS to retrieve the modified
information instead of relying on the kernel code abusing the mount
interface during mount.

Revision 1.56 / (download) - annotate - [select for diffs], Sat Jul 7 21:13:42 2007 UTC (16 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.55: +8 -18 lines
Diff to previous 1.55 (colored) to selected 1.20 (colored)

Make puffs_framebuf better suited from environments with multiple sources:

* in addition add/remove, allow enable/disable, which can be used
  to control events for descriptors without having to remove all the
  data associated with them
* add directsend/receive, which can be used to pass the same buffer
  from the caller to read/writeframe and back again
* add flags to enqueue functions and allow urgent buffers to be
  processed as the next PDU

Revision 1.55 / (download) - annotate - [select for diffs], Thu Jul 5 12:27:39 2007 UTC (16 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.54: +13 -15 lines
Diff to previous 1.54 (colored) to selected 1.20 (colored)

* reorder calls to get results processed even if our I/O descriptors
  go back to zero
* don't give up on the read-side of an fd if there is still unreceived data

Revision 1.54 / (download) - annotate - [select for diffs], Mon Jul 2 10:24:18 2007 UTC (16 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.53: +4 -3 lines
Diff to previous 1.53 (colored) to selected 1.20 (colored)

Get rid of the "int *refs" parameter to inactive: the same can be
accomplished now with puffs_setbacks.

Revision 1.53 / (download) - annotate - [select for diffs], Mon Jun 11 06:13:34 2007 UTC (16 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.52: +7 -5 lines
Diff to previous 1.52 (colored) to selected 1.20 (colored)

print a specific warning if /dev/puffs cannot be opened in init

Revision 1.52 / (download) - annotate - [select for diffs], Wed Jun 6 01:55:01 2007 UTC (16 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.51: +2 -5 lines
Diff to previous 1.51 (colored) to selected 1.20 (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.51 / (download) - annotate - [select for diffs], Mon May 21 08:30:49 2007 UTC (16 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.50: +3 -2 lines
Diff to previous 1.50 (colored) to selected 1.20 (colored)

remember to put the results of the final operations (including unmount)
to the kernel in mainloop

Revision 1.50 / (download) - annotate - [select for diffs], Fri May 18 13:24:23 2007 UTC (16 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.49: +20 -10 lines
Diff to previous 1.49 (colored) to selected 1.20 (colored)

* stuff results back to kernel before calling kevent - the file server
  loop function might generate some results.  and this is still "after"
  event handling (except for the first call, but I'm not too keen on
  optimizing for that)
* don't be such a baby about EINTR from kevent().  if we get it, suck
  it up and continue instead of quitting

Revision 1.49 / (download) - annotate - [select for diffs], Thu May 17 14:03:13 2007 UTC (16 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.48: +27 -43 lines
Diff to previous 1.48 (colored) to selected 1.20 (colored)

Reflect kernel changes for supplying root node information in mount
instead of puffs_start().  Get completely rid of puffs_start(), as
everything it used to do is now handled by the mount routine.
Introduce an optional pre-mount call puffs_setrootinfo() for setting
non-default root node information.  As the old puffs_mount() is
now virtually useless, say byebye to it and rename the old
puffs_domount() to puffs_mount(), but add a root cookie parameter
to compensate for the late puffs_start().

Revision 1.48 / (download) - annotate - [select for diffs], Wed May 16 09:41:04 2007 UTC (16 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.47: +4 -4 lines
Diff to previous 1.47 (colored) to selected 1.20 (colored)

switch the arbitrary default errno value for network i/o from
ECONNABORTED to ECONNRESET, which is at least a little bit better

Revision 1.47 / (download) - annotate - [select for diffs], Tue May 15 16:45:22 2007 UTC (16 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.46: +3 -3 lines
Diff to previous 1.46 (colored) to selected 1.20 (colored)

memset freshly allocated puffs_usermount to 0

Revision 1.46 / (download) - annotate - [select for diffs], Tue May 15 13:44:47 2007 UTC (16 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.45: +105 -28 lines
Diff to previous 1.45 (colored) to selected 1.20 (colored)

Step 3 and currently final step of a more general purpose event loop:
support removal and addition of i/o file descriptors on the fly.

* detect closed file descriptors
* automatically free waiters of a dead file descriptor
* give the file server the possibility to specify a callback which
  notifies of a dead file descriptor
* move loop function to be a property of the mainloop instead of
  framebuf (doesn't change effective behaviour)
* add the possibility to configure a timespec parameter which
  attempts to call the loop function periodically
* move the event loop functions from the puffs_framebuf namespace
  to puffs_framev to differential between pure memory management
  functions

Revision 1.45 / (download) - annotate - [select for diffs], Fri May 11 21:42:42 2007 UTC (16 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.44: +2 -940 lines
Diff to previous 1.44 (colored) to selected 1.20 (colored)

move puffs request dispatching code into it's own module.
no functional change

Revision 1.44 / (download) - annotate - [select for diffs], Fri May 11 21:27:13 2007 UTC (16 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.43: +142 -42 lines
Diff to previous 1.43 (colored) to selected 1.20 (colored)

Step 2 of general-purpose eventloop: get rid of puffs_framebuf_eventloop().
puffs_mainloop() now handles that functionality as well.

Revision 1.43 / (download) - annotate - [select for diffs], Thu May 10 12:26:28 2007 UTC (16 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.42: +38 -12 lines
Diff to previous 1.42 (colored) to selected 1.20 (colored)

Add some kludges to be able to execute requests on the regular program
stack instead of the continuation stack.  This is for lib/36011, where
pthread gets confused since we aren't running on the regular stack.
I'm not really sure which direction to go to with this quite yet, so
make the hack hard to enable on purpose.  The whole request dispatch
code needs cleaning anyway.

Revision 1.42 / (download) - annotate - [select for diffs], Wed May 9 18:36:52 2007 UTC (16 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.41: +3 -3 lines
Diff to previous 1.41 (colored) to selected 1.20 (colored)

Remove the puffs_usermount argument from puffs_req_handle().  It can
be found from the other arguments and this way puffs_req_handle() is
more symmetric with the other puffs_req() routines.

Revision 1.41 / (download) - annotate - [select for diffs], Wed May 9 18:23:12 2007 UTC (16 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.40: +3 -2 lines
Diff to previous 1.40 (colored) to selected 1.20 (colored)

Return 0 from puffs_mainloop() if no error occurs.
pointed out by Phil Nelson

Revision 1.40 / (download) - annotate - [select for diffs], Mon May 7 17:16:07 2007 UTC (16 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.39: +62 -52 lines
Diff to previous 1.39 (colored) to selected 1.20 (colored)

Add puffs_setback(), which can be used to set setbacks for nodes before
the call returns to the kernel.  Currently it can be called only from
open(), mmap(), remove() and rmdir().  (But that might change)

Revision 1.39 / (download) - annotate - [select for diffs], Fri Apr 20 08:28:53 2007 UTC (16 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.38: +8 -3 lines
Diff to previous 1.38 (colored) to selected 1.20 (colored)

assert that the file server doesn't try to return more cookies than
it was supposed to

Revision 1.38 / (download) - annotate - [select for diffs], Mon Apr 16 13:04:49 2007 UTC (16 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.37: +4 -3 lines
Diff to previous 1.37 (colored) to selected 1.20 (colored)

alloc to set flags when setting fhsize

Revision 1.37 / (download) - annotate - [select for diffs], Mon Apr 16 08:28:55 2007 UTC (16 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.36: +33 -2 lines
Diff to previous 1.36 (colored) to selected 1.20 (colored)

some routines for setting mount parameters

Revision 1.36 / (download) - annotate - [select for diffs], Fri Apr 13 13:35:46 2007 UTC (16 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.35: +69 -41 lines
Diff to previous 1.35 (colored) to selected 1.20 (colored)

Instead of keeping on adding parameters to puffs_mount(), make it
only take the bare essentials, which currently means removing
"maxreqlen" from the argument list (all current callers I'm aware
of set it as 0 anyway).  Introduce puffs_init(), which provides a
context for setting various parameters and puffs_domount(), which
can be used to mount the file system.  Keep puffs_mount() as a
shortcut for the above two for simple file systems.

Bump development ABI version to 13.  After all, it's Friday the 13th.
Watch out!  Bad things can happen on Friday the 13th. --No carrier--

Revision 1.35 / (download) - annotate - [select for diffs], Thu Apr 12 15:09:01 2007 UTC (16 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.34: +29 -2 lines
Diff to previous 1.34 (colored) to selected 1.20 (colored)

Hide struct puffs_usermount from the rest of the world and provide
accessors for interesting data in it.  Namely, you can now get
pu->pu_privdata with puffs_getspecific(), pu->pu_pn_root with
puffs_set/getroot() and pu->pu_maxreqlen with puffs_getmaxreqlen().

Revision 1.34 / (download) - annotate - [select for diffs], Wed Apr 11 21:04:51 2007 UTC (16 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.33: +44 -6 lines
Diff to previous 1.33 (colored) to selected 1.20 (colored)

* support nodetofh and fhtonode callbacks
* use new signature of node_readdir

Revision 1.33 / (download) - annotate - [select for diffs], Tue Mar 20 10:22:23 2007 UTC (17 years ago) by pooka
Branch: MAIN
Changes since 1.32: +18 -2 lines
Diff to previous 1.32 (colored) to selected 1.20 (colored)

initial support for cacheops

Revision 1.32 / (download) - annotate - [select for diffs], Sun Feb 18 17:38:10 2007 UTC (17 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.31: +8 -0 lines
Diff to previous 1.31 (colored) to selected 1.20 (colored)

Until someone can sort non-priviledged mounts and kauth, force
MNT_NOSUID | MNT_NODEV for mounts with geteuid() != 0.  I'm tired
of typing them on the command line every time I test a file system.

Revision 1.31 / (download) - annotate - [select for diffs], Sun Feb 18 17:36:48 2007 UTC (17 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.30: +6 -2 lines
Diff to previous 1.30 (colored) to selected 1.20 (colored)

dump return values for operations

Revision 1.30 / (download) - annotate - [select for diffs], Thu Feb 15 17:04:46 2007 UTC (17 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.29: +5 -5 lines
Diff to previous 1.29 (colored) to selected 1.20 (colored)

Introduce puffs_path_walkcmp(), which is to be called from nodewalk
and compares the path of the node against the given pathobject.
Also make comparison method take a flag to indicate if it should
check if the second path is a true prefix of the first.

plus some namespace cleanup

Revision 1.29 / (download) - annotate - [select for diffs], Thu Feb 15 12:51:45 2007 UTC (17 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.28: +6 -11 lines
Diff to previous 1.28 (colored) to selected 1.20 (colored)

* get rid of the holy kernel-given ISDOTDOT, and instead define a
  macro which does strcmp against ".." and (the untranslated)
  componentname
* make PUFFS_FLAG_BUILDPATH build paths also if dotdot is the case,
  and adapt the regular path objects to this
* make nullfs lookup readable because we can now get rid of dotdot
  processing there

Revision 1.28 / (download) - annotate - [select for diffs], Fri Jan 26 23:00:33 2007 UTC (17 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.27: +14 -2 lines
Diff to previous 1.27 (colored) to selected 1.20 (colored)

add interfaces for suspending the file system

Revision 1.27 / (download) - annotate - [select for diffs], Sat Jan 20 14:37:06 2007 UTC (17 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.26: +6 -6 lines
Diff to previous 1.26 (colored) to selected 1.20 (colored)

Be consistent with the rest of the framework about the argument
order of puffs_docc and puffs_dopreq

Revision 1.26 / (download) - annotate - [select for diffs], Sat Jan 20 13:52:14 2007 UTC (17 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.25: +11 -34 lines
Diff to previous 1.25 (colored) to selected 1.20 (colored)

be consistent in naming request handlers

Revision 1.25 / (download) - annotate - [select for diffs], Tue Jan 16 22:37:17 2007 UTC (17 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.24: +2 -16 lines
Diff to previous 1.24 (colored) to selected 1.20 (colored)

revoke revoke

Revision 1.24 / (download) - annotate - [select for diffs], Mon Jan 15 00:39:02 2007 UTC (17 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.23: +100 -138 lines
Diff to previous 1.23 (colored) to selected 1.20 (colored)

Checkpoint some more work in progress: for the benefit those file
system backends which operate purely based on paths, push out more
path management into the library and make path management more
abstract: enable a file system to define a bunch of path management
callbacks, which are used by the framework.  Management of normal
/this/is/a/path type paths is provided by the library.

Revision 1.23 / (download) - annotate - [select for diffs], Thu Jan 11 18:18:36 2007 UTC (17 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.22: +72 -3 lines
Diff to previous 1.22 (colored) to selected 1.20 (colored)

For directory renames we need to rename all the child nodes for
the given directory if the file system wants paths (PUFFS_FLAG_BUILDPATH).
Do this by walking the nodelist and adjusting the path prefix of
each matching node.

Revision 1.22 / (download) - annotate - [select for diffs], Wed Jan 10 23:02:50 2007 UTC (17 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.21: +11 -3 lines
Diff to previous 1.21 (colored) to selected 1.20 (colored)

* don't chdir in possible daemon() call for the benefit of file systems
  which specify a relative path as the root
* if (buildpath), build link source full pathname for the duration of
  the operation

Revision 1.21 / (download) - annotate - [select for diffs], Sat Jan 6 18:22:09 2007 UTC (17 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.20: +62 -23 lines
Diff to previous 1.20 (colored)

* get rid of the mount callback; it's no great surprise to the
  server that it needs to mount the file system backend if it wants
  to call mount
* provide some options for getmntopts(), assume that callers will parse
  command line (or fstab) args
* reorganize the puffs_cc interface just a bit, preparing for a bigger
  revamp later

Revision 1.20 / (download) - annotate - [selected], Tue Jan 2 15:53:05 2007 UTC (17 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.19: +11 -4 lines
Diff to previous 1.19 (colored)

* inform kernel of our version
* homegrown lib ABI check (to avoid bumping major a ludicrillion times
  before reaching stability)

Revision 1.19 / (download) - annotate - [select for diffs], Fri Dec 29 15:28:11 2006 UTC (17 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.18: +404 -146 lines
Diff to previous 1.18 (colored) to selected 1.20 (colored)

checkpoint some experimental work-in-progress, namely:

Add support for having multiple outstanding operations.  This is done
by exposing enough interfaces so that it is convenient to have the
main event loop in the implementation itself and by providing a
continuation framework for convinient blocking and rescheduling.

works fine, but will undergo further cleanup & development

Revision 1.18 / (download) - annotate - [select for diffs], Thu Dec 14 18:15:59 2006 UTC (17 years, 3 months ago) by alc
Branch: MAIN
Changes since 1.17: +17 -9 lines
Diff to previous 1.17 (colored) to selected 1.20 (colored)

CID4360: don't leak `buf' upon return
ok pooka@

Revision 1.17 / (download) - annotate - [select for diffs], Thu Dec 7 23:15:20 2006 UTC (17 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.16: +24 -45 lines
Diff to previous 1.16 (colored) to selected 1.20 (colored)

outline & export code for interfacing with kernel GET/PUT requests

Revision 1.16 / (download) - annotate - [select for diffs], Thu Dec 7 17:39:54 2006 UTC (17 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.15: +3 -3 lines
Diff to previous 1.15 (colored) to selected 1.20 (colored)

g/c out-of-date comment

Revision 1.15 / (download) - annotate - [select for diffs], Thu Dec 7 16:59:14 2006 UTC (17 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.14: +4 -6 lines
Diff to previous 1.14 (colored) to selected 1.20 (colored)

support mmap

Revision 1.14 / (download) - annotate - [select for diffs], Thu Dec 7 16:13:51 2006 UTC (17 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.13: +11 -116 lines
Diff to previous 1.13 (colored) to selected 1.20 (colored)

cleanup generated stuff from comments

Revision 1.13 / (download) - annotate - [select for diffs], Thu Dec 7 10:53:21 2006 UTC (17 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.12: +104 -105 lines
Diff to previous 1.12 (colored) to selected 1.20 (colored)

rototill the operation callbacks: unify the ops under struct puffs_ops
and namespace them

Revision 1.12 / (download) - annotate - [select for diffs], Tue Dec 5 23:04:21 2006 UTC (17 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.11: +131 -73 lines
Diff to previous 1.11 (colored) to selected 1.20 (colored)

adapt to kernel change:
Allow multiple requests to be transferred in each GET/PUTOP

Revision 1.11 / (download) - annotate - [select for diffs], Fri Dec 1 12:50:06 2006 UTC (17 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, netbsd-4-base, 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, netbsd-4
Changes since 1.10: +4 -4 lines
Diff to previous 1.10 (colored) to selected 1.20 (colored)

PUFFSFLAG -> PUFFS_FLAG to be consistent with the kernel

Revision 1.10 / (download) - annotate - [select for diffs], Fri Dec 1 12:38:11 2006 UTC (17 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.9: +52 -2 lines
Diff to previous 1.9 (colored) to selected 1.20 (colored)

build & send implemented operations list to kernel

Revision 1.9 / (download) - annotate - [select for diffs], Thu Nov 30 05:37:48 2006 UTC (17 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.8: +9 -3 lines
Diff to previous 1.8 (colored) to selected 1.20 (colored)

summon daemon(3) in mainloop unless the nodaemon flag is given

Revision 1.8 / (download) - annotate - [select for diffs], Sat Nov 18 12:40:35 2006 UTC (17 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.7: +7 -11 lines
Diff to previous 1.7 (colored) to selected 1.20 (colored)

* call statvfs() at mount() time, pass that info along
* start is gone

Revision 1.7 / (download) - annotate - [select for diffs], Fri Nov 17 17:48:32 2006 UTC (17 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.6: +3 -3 lines
Diff to previous 1.6 (colored) to selected 1.20 (colored)

shuffle flags a bit

Revision 1.6 / (download) - annotate - [select for diffs], Thu Nov 9 13:11:01 2006 UTC (17 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.5: +32 -19 lines
Diff to previous 1.5 (colored) to selected 1.20 (colored)

* catch up with kernel changes
* better error handling when mounting

Revision 1.5 / (download) - annotate - [select for diffs], Tue Nov 7 22:10:53 2006 UTC (17 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.4: +11 -34 lines
Diff to previous 1.4 (colored) to selected 1.20 (colored)

* support FAF (Fire-And-Forget) class operations
* adapt to new lookup

Revision 1.4 / (download) - annotate - [select for diffs], Thu Oct 26 22:53:01 2006 UTC (17 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.3: +3 -3 lines
Diff to previous 1.3 (colored) to selected 1.20 (colored)

pass rdev for specfs support

Revision 1.3 / (download) - annotate - [select for diffs], Wed Oct 25 18:15:50 2006 UTC (17 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.2: +16 -15 lines
Diff to previous 1.2 (colored) to selected 1.20 (colored)

handle PUFFS_VN_INACTIVE

Revision 1.2 / (download) - annotate - [select for diffs], Mon Oct 23 00:22:24 2006 UTC (17 years, 5 months ago) by christos
Branch: MAIN
Changes since 1.1: +2 -4 lines
Diff to previous 1.1 (colored) to selected 1.20 (colored)

pass lint; fix install.

Revision 1.1 / (download) - annotate - [select for diffs], Sun Oct 22 22:52:21 2006 UTC (17 years, 5 months ago) by pooka
Branch: MAIN
Diff to selected 1.20 (colored)

add libpuffs - the userspace programming interface for puffs

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>