Home | History | Annotate | only in /src/share/examples/puffs
History log of /src/share/examples/puffs
RevisionDateAuthorComments
 1.3 15-Aug-2007  pooka sysctlfs was moved to base
 1.2 24-Jun-2007  pooka I wasn't going to add any more silly examples, but I'll bite for
this one, since it's a good exercise ..

Add icfs, which does the same thing as the refuse-based icfs agc
added earlier this week, i.e. null-mounts & converts the entire
namespace to lowercase. However, it's a fun comparison, since this
is implemented in a completely different fashion from the refuse
version.
 1.1 30-Jan-2007  gdt Even though the parent doesn't descend here, it's still convenient to
have a makefile to build the 4 examples at once.
 1.2 06-Jul-2010  pooka Move the Delectable Test File System from share/examples/puffs/dtfs
to tests/fs/puffs/h_dtfs.

No functional change (apart from adjusting the Makefile for test builds).
 1.1 23-Oct-2006  pooka dtfs (*): a very simple in-memory file system providing an example on
how to use libpuffs

this is not installed into the binary distribution just yet

*) you can call it either "Delectable Test File System" or
"Detrempe File System", depending on what you think will result
in more puffing
 1.1 06-Jul-2010  pooka Move the Delectable Test File System from share/examples/puffs/dtfs
to tests/fs/puffs/h_dtfs.

No functional change (apart from adjusting the Makefile for test builds).
 1.43 06-Jul-2010  pooka Move the Delectable Test File System from share/examples/puffs/dtfs
to tests/fs/puffs/h_dtfs.

No functional change (apart from adjusting the Makefile for test builds).
 1.42 06-Jul-2010  pooka Reinstate the inactive operation (mostly dummy). This makes -i
work again and henceforth makes it possible to test inactive.
 1.41 05-Dec-2009  pooka Use puffs_kernerr_abort as the error handler.
 1.40 04-Dec-2009  pooka Remove no longer supported suspend code.
 1.39 19-Dec-2007  pooka use generic getattr
 1.38 16-Nov-2007  pooka use puffs_daemon() instead of daemon()
 1.37 05-Nov-2007  pooka Actually, daemonize the file servers before mounting. I might require
at some point that the local protocol handler does not change after
the file system has been mounted.
 1.36 05-Nov-2007  pooka 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.
 1.35 11-Oct-2007  pooka add testing option -l, which causes the flush of the page cache of
the node under lookup (if found)
 1.34 05-Sep-2007  pooka fix usage. from Karl Jenkinson
 1.33 09-Aug-2007  pooka branches: 1.33.2;
require standard mount_foo bar /path usage, where bar is ignored here
 1.32 27-Jul-2007  pooka branches: 1.32.4;
implement node_mmap and allow to specify accepted mappings on command line
 1.31 19-Jul-2007  pooka -m for setting maxreqlen
 1.30 17-Jul-2007  pooka * add mntfromname parameter to puffs_init()
* set it in file servers
 1.29 01-Jul-2007  pooka dtfs -f for PUFFS_KFLAG_LOOKUP_FULLPNBUF
 1.28 06-Jun-2007  pooka 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...
 1.27 05-Jun-2007  pooka make getopt() actually accept -t also
 1.26 18-May-2007  pooka Use SETBACK_NOREF instead of SETBACK_INACT to control node removal.
Avoids one round of inactive (wheee!).
 1.25 18-May-2007  pooka "support" vop_poll enough for testing purposes. In short, yield every
poll request for a few seconds before returning.
 1.24 17-May-2007  pooka Adapt to changes with mounting file systems.

Introduce a parameter -r to control the root node type. For example
"dtfs -r 'lnk /etc' /puffs" mounts dtfs with the root node as a
symbolic link to /etc:

jojonaru# ./dtfs -r 'lnk /etc' /puffs
jojonaru# ls -l /puffs
lrw-rw-rw- 1 root wheel 4 May 17 14:06 /puffs -> /etc
jojonaru# cd /puffs
jojonaru# pwd
/etc
jojonaru#

Extra credit for figuring out how to unmount this file system with
umount(8).

Likewise, "dtfs -r 'chr 2 12' /puffs" makes /puffs (i386) /dev/zero etcetc.
 1.23 07-May-2007  pooka Unmount frequently requires some test code, so define it here as
a dummy instead of libpuffs to make plugging the test code in easier.
 1.22 07-May-2007  pooka Default to inactive-on-demand, use inactive setback to request inactive
to be called for a removed node (for unix open file semantics).
 1.21 22-Apr-2007  pooka mount with write-through page cache if command line -t is given
 1.20 16-Apr-2007  pooka update usage
 1.19 16-Apr-2007  pooka adapt to kernel changes with file handles
 1.18 13-Apr-2007  pooka 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--
 1.17 11-Apr-2007  pooka support nfs exporting dtfs
 1.16 20-Mar-2007  pooka add support for permissions and file ownership
 1.15 26-Jan-2007  pooka Add very uncorrect "suspend fs if server gets SIGUSR1" test for fs
suspension (hey, it's a test file system after all .... )
 1.14 15-Jan-2007  pooka adapt to libpuffs changes
 1.13 06-Jan-2007  pooka * do mount as a forward operation instead of a callback
* process -o args for mount
 1.12 29-Dec-2006  pooka apply wide-angle rotollation beam to match libpuffs changes
 1.11 07-Dec-2006  pooka use command line flags to set various options
 1.10 07-Dec-2006  pooka counter-rototill for libpuffs change: unify all callback ops under
a single structure
 1.9 01-Dec-2006  pooka update flag names
 1.8 30-Nov-2006  pooka adapt to flags parameter for puffs_mainloop()
 1.7 18-Nov-2006  pooka * no more fsid
* no more start()
 1.6 14-Nov-2006  pooka adapt to libpuffs namespace change
 1.5 14-Nov-2006  pooka use generic dummies for sync and unmount
 1.4 09-Nov-2006  pooka play catchup with the rest of the world, i.e. shuffle stuff a bit
 1.3 26-Oct-2006  pooka support mknod, essentially makes it possible to run dtfs as /dev
 1.2 25-Oct-2006  pooka Only nuke directory entry in remove and clear data completely only
when the node is reclaimed. This makes dtfs preserve unix open file
semantics.
 1.1 23-Oct-2006  pooka dtfs (*): a very simple in-memory file system providing an example on
how to use libpuffs

this is not installed into the binary distribution just yet

*) you can call it either "Delectable Test File System" or
"Detrempe File System", depending on what you think will result
in more puffing
 1.32.4.2 27-Jul-2007  pooka implement node_mmap and allow to specify accepted mappings on command line
 1.32.4.1 27-Jul-2007  pooka file dtfs.c was added on branch matt-mips64 on 2007-07-27 08:29:11 +0000
 1.33.2.2 09-Jan-2008  matt sync with HEAD
 1.33.2.1 06-Nov-2007  matt sync with HEAD
 1.22 06-Jul-2010  pooka Move the Delectable Test File System from share/examples/puffs/dtfs
to tests/fs/puffs/h_dtfs.

No functional change (apart from adjusting the Makefile for test builds).
 1.21 27-Sep-2007  pooka dtfs memsets all allocated block content to 0 immediately, so to
avoid wasting unbelievable amounts of memory, set the blocksize to
something more believable. Should fix the memset-part to act only
up to the size the file is extended to, though.
 1.20 27-Jul-2007  pooka branches: 1.20.4; 1.20.6;
implement node_mmap and allow to specify accepted mappings on command line
 1.19 17-Jul-2007  pooka With fullpath support we need to check name lengths also, otherwise
lookup for "foo" will match "foobar".
 1.18 01-Jul-2007  pooka dtfs -f for PUFFS_KFLAG_LOOKUP_FULLPNBUF
 1.17 06-Jun-2007  pooka 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...
 1.16 18-May-2007  pooka "support" vop_poll enough for testing purposes. In short, yield every
poll request for a few seconds before returning.
 1.15 17-May-2007  pooka Adapt to changes with mounting file systems.

Introduce a parameter -r to control the root node type. For example
"dtfs -r 'lnk /etc' /puffs" mounts dtfs with the root node as a
symbolic link to /etc:

jojonaru# ./dtfs -r 'lnk /etc' /puffs
jojonaru# ls -l /puffs
lrw-rw-rw- 1 root wheel 4 May 17 14:06 /puffs -> /etc
jojonaru# cd /puffs
jojonaru# pwd
/etc
jojonaru#

Extra credit for figuring out how to unmount this file system with
umount(8).

Likewise, "dtfs -r 'chr 2 12' /puffs" makes /puffs (i386) /dev/zero etcetc.
 1.14 11-Apr-2007  pooka support nfs exporting dtfs
 1.13 10-Apr-2007  pooka use dev_t from puffs_node instead of duplicating it into
fs specific structures
 1.12 10-Apr-2007  pooka g/c leftovers
 1.11 01-Apr-2007  pooka Allocate file memory in blocks instead of one big chunk. Makes
writing large files much cheaper since there's no longer a need to
realloc $lots of memory when the file grows.
 1.10 20-Mar-2007  pooka add support for permissions and file ownership
 1.9 11-Mar-2007  pooka don't shrink file size when writing to the middle of an existing file

(mandatory AsiaBSDCon live commit)
 1.8 06-Jan-2007  pooka * do mount as a forward operation instead of a callback
* process -o args for mount
 1.7 07-Dec-2006  pooka counter-rototill for libpuffs change: unify all callback ops under
a single structure
 1.6 18-Nov-2006  pooka * no more fsid
* no more start()
 1.5 09-Nov-2006  pooka play catchup with the rest of the world, i.e. shuffle stuff a bit
 1.4 27-Oct-2006  pooka update appropriate timestamps after each operation. cvs works much
better now with dtfs /tmp
 1.3 26-Oct-2006  pooka support mknod, essentially makes it possible to run dtfs as /dev
 1.2 25-Oct-2006  pooka Only nuke directory entry in remove and clear data completely only
when the node is reclaimed. This makes dtfs preserve unix open file
semantics.
 1.1 23-Oct-2006  pooka dtfs (*): a very simple in-memory file system providing an example on
how to use libpuffs

this is not installed into the binary distribution just yet

*) you can call it either "Delectable Test File System" or
"Detrempe File System", depending on what you think will result
in more puffing
 1.20.6.2 27-Jul-2007  pooka implement node_mmap and allow to specify accepted mappings on command line
 1.20.6.1 27-Jul-2007  pooka file dtfs.h was added on branch matt-mips64 on 2007-07-27 08:29:11 +0000
 1.20.4.1 06-Nov-2007  matt sync with HEAD
 1.22 06-Jul-2010  pooka Move the Delectable Test File System from share/examples/puffs/dtfs
to tests/fs/puffs/h_dtfs.

No functional change (apart from adjusting the Makefile for test builds).
 1.21 11-Oct-2007  pooka when removing file, free last block also
 1.20 22-Jul-2007  pooka branches: 1.20.4; 1.20.6;
Match code with comment (can't really remember doing it often that
way around .. ) and initialize storage to zero when extending a file.
 1.19 17-Jul-2007  pooka With fullpath support we need to check name lengths also, otherwise
lookup for "foo" will match "foobar".
 1.18 01-Jul-2007  pooka dtfs -f for PUFFS_KFLAG_LOOKUP_FULLPNBUF
 1.17 01-Jul-2007  pooka adapt: pcn->pcn_cred is now a pointer
 1.16 06-Jun-2007  pooka 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...
 1.15 12-Apr-2007  pooka 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().
 1.14 11-Apr-2007  pooka support nfs exporting dtfs
 1.13 01-Apr-2007  pooka Allocate file memory in blocks instead of one big chunk. Makes
writing large files much cheaper since there's no longer a need to
realloc $lots of memory when the file grows.
 1.12 20-Mar-2007  pooka add support for permissions and file ownership
 1.11 11-Mar-2007  pooka don't shrink file size when writing to the middle of an existing file

(mandatory AsiaBSDCon live commit)
 1.10 28-Jan-2007  pooka Avoid doing a ludicrous number of reallocs when the file grows by only
lazy extending the file in setattr and really extending it in write.
 1.9 29-Dec-2006  pooka apply wide-angle rotollation beam to match libpuffs changes
 1.8 05-Dec-2006  pooka only count directories in the number of hard links to a directory
 1.7 18-Nov-2006  pooka * no more fsid
* no more start()
 1.6 09-Nov-2006  pooka play catchup with the rest of the world, i.e. shuffle stuff a bit
 1.5 27-Oct-2006  pooka update appropriate timestamps after each operation. cvs works much
better now with dtfs /tmp
 1.4 27-Oct-2006  pooka relax typechecks so that all file types work (they were already supported)
 1.3 26-Oct-2006  pooka support mknod, essentially makes it possible to run dtfs as /dev
 1.2 25-Oct-2006  pooka Only nuke directory entry in remove and clear data completely only
when the node is reclaimed. This makes dtfs preserve unix open file
semantics.
 1.1 23-Oct-2006  pooka dtfs (*): a very simple in-memory file system providing an example on
how to use libpuffs

this is not installed into the binary distribution just yet

*) you can call it either "Delectable Test File System" or
"Detrempe File System", depending on what you think will result
in more puffing
 1.20.6.2 22-Jul-2007  pooka Match code with comment (can't really remember doing it often that
way around .. ) and initialize storage to zero when extending a file.
 1.20.6.1 22-Jul-2007  pooka file dtfs_subr.c was added on branch matt-mips64 on 2007-07-22 13:19:39 +0000
 1.20.4.1 06-Nov-2007  matt sync with HEAD
 1.25 06-Jul-2010  pooka Move the Delectable Test File System from share/examples/puffs/dtfs
to tests/fs/puffs/h_dtfs.

No functional change (apart from adjusting the Makefile for test builds).
 1.24 04-Dec-2009  pooka Remove no longer supported suspend code.
 1.23 30-Nov-2007  pooka Rototill.

Ok, ok, a few more words about it: stop holding puffs_cc as a holy
value and passing it around to almost every possible place (popquiz:
which kernel variable does this remind you of?). Instead, pass
the natural choice, puffs_usermount, and fetch puffs_cc via
puffs_cc_getcc() only in routines which actually need it. This
not only simplifies code, but (thanks to the introduction of
puffs_cc_getcc()) enables constructs which weren't previously sanely
possible, say layering as a curious example.

There's still a little to do on this front, but this was the major
fs interface blast.
 1.22 27-Nov-2007  pooka 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.
 1.21 01-Jul-2007  pooka branches: 1.21.4;
adapt: **newnode etc. pointers -> struct puffs_newinfo
 1.20 01-Jul-2007  pooka adapt: pid -> const struct puffs_cid *
 1.19 06-Jun-2007  pooka 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...
 1.18 18-May-2007  pooka "support" vop_poll enough for testing purposes. In short, yield every
poll request for a few seconds before returning.
 1.17 17-May-2007  pooka Adapt to changes with mounting file systems.

Introduce a parameter -r to control the root node type. For example
"dtfs -r 'lnk /etc' /puffs" mounts dtfs with the root node as a
symbolic link to /etc:

jojonaru# ./dtfs -r 'lnk /etc' /puffs
jojonaru# ls -l /puffs
lrw-rw-rw- 1 root wheel 4 May 17 14:06 /puffs -> /etc
jojonaru# cd /puffs
jojonaru# pwd
/etc
jojonaru#

Extra credit for figuring out how to unmount this file system with
umount(8).

Likewise, "dtfs -r 'chr 2 12' /puffs" makes /puffs (i386) /dev/zero etcetc.
 1.16 07-May-2007  pooka Unmount frequently requires some test code, so define it here as
a dummy instead of libpuffs to make plugging the test code in easier.
 1.15 16-Apr-2007  pooka lessen file handle size sanity checks: kernel does it already (mostly)
 1.14 16-Apr-2007  pooka adapt to kernel changes with file handles
 1.13 12-Apr-2007  pooka 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().
 1.12 11-Apr-2007  pooka support nfs exporting dtfs
 1.11 26-Jan-2007  pooka Add very uncorrect "suspend fs if server gets SIGUSR1" test for fs
suspension (hey, it's a test file system after all .... )
 1.10 15-Jan-2007  pooka adapt to libpuffs changes
 1.9 06-Jan-2007  pooka * do mount as a forward operation instead of a callback
* process -o args for mount
 1.8 29-Dec-2006  pooka apply wide-angle rotollation beam to match libpuffs changes
 1.7 07-Dec-2006  pooka counter-rototill for libpuffs change: unify all callback ops under
a single structure
 1.6 18-Nov-2006  pooka * no more fsid
* no more start()
 1.5 14-Nov-2006  pooka use generic dummies for sync and unmount
 1.4 13-Nov-2006  pooka fix link count for rootnode broken last week
 1.3 09-Nov-2006  pooka play catchup with the rest of the world, i.e. shuffle stuff a bit
 1.2 08-Nov-2006  pooka give an estimation of the amount of free space
 1.1 23-Oct-2006  pooka dtfs (*): a very simple in-memory file system providing an example on
how to use libpuffs

this is not installed into the binary distribution just yet

*) you can call it either "Delectable Test File System" or
"Detrempe File System", depending on what you think will result
in more puffing
 1.21.4.1 09-Jan-2008  matt sync with HEAD
 1.44 06-Jul-2010  pooka Move the Delectable Test File System from share/examples/puffs/dtfs
to tests/fs/puffs/h_dtfs.

No functional change (apart from adjusting the Makefile for test builds).
 1.43 06-Jul-2010  pooka Reinstate the inactive operation (mostly dummy). This makes -i
work again and henceforth makes it possible to test inactive.
 1.42 19-Dec-2007  pooka use generic getattr
 1.41 30-Nov-2007  pooka Rototill.

Ok, ok, a few more words about it: stop holding puffs_cc as a holy
value and passing it around to almost every possible place (popquiz:
which kernel variable does this remind you of?). Instead, pass
the natural choice, puffs_usermount, and fetch puffs_cc via
puffs_cc_getcc() only in routines which actually need it. This
not only simplifies code, but (thanks to the introduction of
puffs_cc_getcc()) enables constructs which weren't previously sanely
possible, say layering as a curious example.

There's still a little to do on this front, but this was the major
fs interface blast.
 1.40 27-Nov-2007  pooka 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.
 1.39 11-Oct-2007  pooka add testing option -l, which causes the flush of the page cache of
the node under lookup (if found)
 1.38 15-Aug-2007  pooka branches: 1.38.2;
Nuke PUFFSLOOKUP_FOO and move to NAMEI_FOO
 1.37 27-Jul-2007  pooka branches: 1.37.4;
implement node_mmap and allow to specify accepted mappings on command line
 1.36 22-Jul-2007  pooka missed one place to set dirent namelen - unmiss it
 1.35 19-Jul-2007  pooka Oops, the cookies for nfs of course represent the *next* directory
entry offset, not the current one.
 1.34 17-Jul-2007  pooka With fullpath support we need to check name lengths also, otherwise
lookup for "foo" will match "foobar".
 1.33 17-Jul-2007  pooka nuke accidental debug printf
 1.32 01-Jul-2007  pooka dtfs -f for PUFFS_KFLAG_LOOKUP_FULLPNBUF
 1.31 01-Jul-2007  pooka adapt: **newnode etc. pointers -> struct puffs_newinfo
 1.30 01-Jul-2007  pooka adapt: pid -> const struct puffs_cid *
 1.29 01-Jul-2007  pooka adapt: pcn->pcn_cred is now a pointer
 1.28 06-Jun-2007  pooka 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...
 1.27 18-May-2007  pooka Use SETBACK_NOREF instead of SETBACK_INACT to control node removal.
Avoids one round of inactive (wheee!).
 1.26 18-May-2007  pooka "support" vop_poll enough for testing purposes. In short, yield every
poll request for a few seconds before returning.
 1.25 07-May-2007  pooka Default to inactive-on-demand, use inactive setback to request inactive
to be called for a removed node (for unix open file semantics).
 1.24 20-Apr-2007  pooka remove assertion now done in libpuffs
 1.23 17-Apr-2007  pooka use PUFFS_STORE_DCOOKIE
 1.22 11-Apr-2007  pooka support nfs exporting dtfs
 1.21 10-Apr-2007  pooka use dev_t from puffs_node instead of duplicating it into
fs specific structures
 1.20 01-Apr-2007  pooka Allocate file memory in blocks instead of one big chunk. Makes
writing large files much cheaper since there's no longer a need to
realloc $lots of memory when the file grows.
 1.19 22-Mar-2007  pooka reflect libpuffs change of puffs_access argument unification
 1.18 21-Mar-2007  pooka check puffs_access_{chmod,chown,times} in setattr
 1.17 20-Mar-2007  pooka add support for permissions and file ownership
 1.16 11-Mar-2007  pooka don't shrink file size when writing to the middle of an existing file

(mandatory AsiaBSDCon live commit)
 1.15 27-Feb-2007  pooka * remove rogue header
* better variable name to avoid shadowing global symbol name
 1.14 15-Feb-2007  pooka PUFFS_ISDOTDOT -> PCNISDOTDOT
 1.13 28-Jan-2007  pooka Avoid doing a ludicrous number of reallocs when the file grows by only
lazy extending the file in setattr and really extending it in write.
 1.12 06-Jan-2007  pooka * do mount as a forward operation instead of a callback
* process -o args for mount
 1.11 01-Jan-2007  pooka SUSv3 says: should the implementation not support directory unlinking,
unlink shall fail with EPERM and the errno of the failure shall be EPERM
 1.10 29-Dec-2006  pooka apply wide-angle rotollation beam to match libpuffs changes
 1.9 07-Dec-2006  pooka counter-rototill for libpuffs change: unify all callback ops under
a single structure
 1.8 13-Nov-2006  pooka remove special-case handling for CREATE/RENAME from lookup() - this fs
does not need it, just return ENOENT
 1.7 07-Nov-2006  pooka adapt to new lookup signature
 1.6 27-Oct-2006  pooka update appropriate timestamps after each operation. cvs works much
better now with dtfs /tmp
 1.5 27-Oct-2006  pooka relax typechecks so that all file types work (they were already supported)
 1.4 26-Oct-2006  pooka support mknod, essentially makes it possible to run dtfs as /dev
 1.3 25-Oct-2006  pooka Only nuke directory entry in remove and clear data completely only
when the node is reclaimed. This makes dtfs preserve unix open file
semantics.
 1.2 23-Oct-2006  pooka don't allow to read or write a directory
 1.1 23-Oct-2006  pooka dtfs (*): a very simple in-memory file system providing an example on
how to use libpuffs

this is not installed into the binary distribution just yet

*) you can call it either "Delectable Test File System" or
"Detrempe File System", depending on what you think will result
in more puffing
 1.37.4.2 27-Jul-2007  pooka implement node_mmap and allow to specify accepted mappings on command line
 1.37.4.1 27-Jul-2007  pooka file dtfs_vnops.c was added on branch matt-mips64 on 2007-07-27 08:29:11 +0000
 1.38.2.2 09-Jan-2008  matt sync with HEAD
 1.38.2.1 06-Nov-2007  matt sync with HEAD
 1.2 26-Aug-2016  tnn fix build of puffs examples; need _KERNTYPES for register_t
 1.1 24-Jun-2007  pooka I wasn't going to add any more silly examples, but I'll bite for
this one, since it's a good exercise ..

Add icfs, which does the same thing as the refuse-based icfs agc
added earlier this week, i.e. null-mounts & converts the entire
namespace to lowercase. However, it's a fun comparison, since this
is implemented in a completely different fashion from the refuse
version.
 1.12 04-May-2025  andvar s/demostrates/demonstrates/ in comment.
 1.11 12-Sep-2008  christos branches: 1.11.72;
fix more A0
 1.10 12-Aug-2008  pooka Add -p for presenting the directory listing in the original case.
 1.9 30-Nov-2007  pooka branches: 1.9.6; 1.9.10;
Rototill.

Ok, ok, a few more words about it: stop holding puffs_cc as a holy
value and passing it around to almost every possible place (popquiz:
which kernel variable does this remind you of?). Instead, pass
the natural choice, puffs_usermount, and fetch puffs_cc via
puffs_cc_getcc() only in routines which actually need it. This
not only simplifies code, but (thanks to the introduction of
puffs_cc_getcc()) enables constructs which weren't previously sanely
possible, say layering as a curious example.

There's still a little to do on this front, but this was the major
fs interface blast.
 1.8 16-Nov-2007  pooka use puffs_daemon() instead of daemon()
 1.7 05-Nov-2007  pooka Actually, daemonize the file servers before mounting. I might require
at some point that the local protocol handler does not change after
the file system has been mounted.
 1.6 05-Nov-2007  pooka 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.
 1.5 17-Jul-2007  pooka branches: 1.5.4;
* add mntfromname parameter to puffs_init()
* set it in file servers
 1.4 24-Jun-2007  pooka PUFFS_KFLAG_NOCACHE became two, so introduce the command line options
-o nonamecache and -o nopagecache and adapt file systems where necessary.
 1.3 24-Jun-2007  pooka cast tolower() arg to unsigned char
 1.2 24-Jun-2007  pooka use puffs_null_setops()
 1.1 24-Jun-2007  pooka I wasn't going to add any more silly examples, but I'll bite for
this one, since it's a good exercise ..

Add icfs, which does the same thing as the refuse-based icfs agc
added earlier this week, i.e. null-mounts & converts the entire
namespace to lowercase. However, it's a fun comparison, since this
is implemented in a completely different fashion from the refuse
version.
 1.5.4.2 09-Jan-2008  matt sync with HEAD
 1.5.4.1 06-Nov-2007  matt sync with HEAD
 1.9.10.2 24-Sep-2008  wrstuden Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
 1.9.10.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.9.6.1 05-Oct-2008  mjf Sync with HEAD.
 1.11.72.1 02-Aug-2025  perseant Sync with HEAD
 1.3 26-Aug-2016  tnn fix build of puffs examples; need _KERNTYPES for register_t
 1.2 22-Apr-2013  yamt make pg_config overridable
 1.1 12-Oct-2011  yamt branches: 1.1.2; 1.1.8;
puffs file system server backed by postgresql
 1.1.8.1 23-Jun-2013  tls resync from head
 1.1.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1 12-Oct-2011  yamt puffs file system server backed by postgresql
 1.1 12-Oct-2011  yamt puffs file system server backed by postgresql
 1.3 19-May-2025  andvar spelling and grammar fixes in comments.
 1.2 12-Oct-2011  yamt branches: 1.2.54;
tweak some sql statements to improve chances to use the index.
 1.1 12-Oct-2011  yamt puffs file system server backed by postgresql
 1.2.54.1 02-Aug-2025  perseant Sync with HEAD
 1.4 22-Apr-2013  yamt fix user-after-free bug
 1.3 22-Apr-2013  yamt do setlocale so that we can print localized messages from libpq correctly.
 1.2 11-Apr-2012  yamt branches: 1.2.2;
- enable writeback cache and namecache.
- use setback hack to reduce number of puffs OPs.
 1.1 12-Oct-2011  yamt branches: 1.1.2;
puffs file system server backed by postgresql
 1.1.2.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.2.1 17-Apr-2012  yamt sync with head
 1.2.2.1 23-Jun-2013  tls resync from head
 1.4 11-Apr-2012  yamt comment
 1.3 11-Apr-2012  yamt remove FK references as it creates more problems than it solves.
particularly, it involves shared lock on the referenced table
and causes frequent deadlock.
 1.2 11-Apr-2012  yamt reduce number of SQL statements for inactivate
 1.1 12-Oct-2011  yamt branches: 1.1.2;
puffs file system server backed by postgresql
 1.1.2.1 17-Apr-2012  yamt sync with head
 1.1 12-Oct-2011  yamt puffs file system server backed by postgresql
 1.3 11-Apr-2012  yamt setlabel: save SQL statements by caching the last label
 1.2 11-Apr-2012  yamt abuse application_name to show the last puffs activity for the connection.
 1.1 12-Oct-2011  yamt branches: 1.1.2;
puffs file system server backed by postgresql
 1.1.2.1 17-Apr-2012  yamt sync with head
 1.2 11-Apr-2012  yamt abuse application_name to show the last puffs activity for the connection.
 1.1 12-Oct-2011  yamt branches: 1.1.2;
puffs file system server backed by postgresql
 1.1.2.1 17-Apr-2012  yamt sync with head
 1.1 12-Oct-2011  yamt puffs file system server backed by postgresql
 1.1 12-Oct-2011  yamt puffs file system server backed by postgresql
 1.5 18-Oct-2014  snj de-foodify comment
 1.4 11-Apr-2012  yamt abuse application_name to show the last puffs activity for the connection.
 1.3 11-Apr-2012  yamt reduce number of SQL statements for inactivate
 1.2 11-Apr-2012  yamt - enable writeback cache and namecache.
- use setback hack to reduce number of puffs OPs.
 1.1 12-Oct-2011  yamt branches: 1.1.2;
puffs file system server backed by postgresql
 1.1.2.1 17-Apr-2012  yamt sync with head
 1.5 11-Apr-2012  yamt don't bother to call lo_close.
as we ever open a few LOs at most in a transaction, just let them be closed
automatically at the end of the transaction.
 1.4 11-Apr-2012  yamt reduce number of SQL statements for inactivate
 1.3 13-Oct-2011  yamt branches: 1.3.2;
isempty: fix a query result type.
 1.2 12-Oct-2011  yamt tweak some sql statements to improve chances to use the index.
 1.1 12-Oct-2011  yamt puffs file system server backed by postgresql
 1.3.2.1 17-Apr-2012  yamt sync with head
 1.2 11-Apr-2012  yamt reduce number of SQL statements for inactivate
 1.1 12-Oct-2011  yamt branches: 1.1.2;
puffs file system server backed by postgresql
 1.1.2.1 17-Apr-2012  yamt sync with head
 1.1 12-Oct-2011  yamt puffs file system server backed by postgresql
 1.1 12-Oct-2011  yamt puffs file system server backed by postgresql
 1.2 26-Aug-2016  tnn fix build of puffs examples; need _KERNTYPES for register_t
 1.1 11-Jan-2007  pooka example null file system built on top of the null layer in libpuffs
 1.18 26-Nov-2008  pooka puffs_setfhsize() in init
 1.17 12-Sep-2008  christos fix more A0
 1.16 16-Nov-2007  pooka branches: 1.16.6; 1.16.10;
use puffs_daemon() instead of daemon()
 1.15 05-Nov-2007  pooka Actually, daemonize the file servers before mounting. I might require
at some point that the local protocol handler does not change after
the file system has been mounted.
 1.14 05-Nov-2007  pooka 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.
 1.13 17-Jul-2007  pooka branches: 1.13.4;
* add mntfromname parameter to puffs_init()
* set it in file servers
 1.12 24-Jun-2007  pooka use puffs_null_setops()
 1.11 24-Jun-2007  pooka fix this also, had a similar rototill-typo as rot13fs
 1.10 06-Jun-2007  pooka 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...
 1.9 17-May-2007  pooka reflect changes in fs mount: use puffs_mount() instead of
puffs_domount() & puffs_start()
 1.8 24-Apr-2007  pooka allow to mount nullfs types only from directories
TODO: generalize
 1.7 13-Apr-2007  pooka 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--
 1.6 12-Apr-2007  pooka 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().
 1.5 15-Feb-2007  pooka support reclaim
 1.4 15-Jan-2007  pooka use new style to indicate rootpath
 1.3 11-Jan-2007  pooka * register fsync operation
* test for -s, which causes no detach (don't need to remember to
do follow-dances in gdb because of fork() used in daemon())
 1.2 11-Jan-2007  pooka * initialize pflags properly
* make 'dump' imply 'don't detach'
 1.1 11-Jan-2007  pooka example null file system built on top of the null layer in libpuffs
 1.13.4.2 09-Jan-2008  matt sync with HEAD
 1.13.4.1 06-Nov-2007  matt sync with HEAD
 1.16.10.1 24-Sep-2008  wrstuden Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
 1.16.6.1 05-Oct-2008  mjf Sync with HEAD.
 1.2 26-Aug-2016  tnn fix build of puffs examples; need _KERNTYPES for register_t
 1.1 15-Jan-2007  pooka Gur Zbba vf Jnavat Perfprag (19% bs Shyy)

Add a little layering experiment, which both exercises the
componentname modification feature of libpuffs and tries to do
layering (just a little too hardcoded for comfort, fow now). This
simply uses the puffs nullfs to present all data and paths in rot13.
You can even mount it twice for extra fun.
 1.17 12-Sep-2008  christos fix more A0
 1.16 30-Nov-2007  pooka branches: 1.16.6; 1.16.10;
Rototill.

Ok, ok, a few more words about it: stop holding puffs_cc as a holy
value and passing it around to almost every possible place (popquiz:
which kernel variable does this remind you of?). Instead, pass
the natural choice, puffs_usermount, and fetch puffs_cc via
puffs_cc_getcc() only in routines which actually need it. This
not only simplifies code, but (thanks to the introduction of
puffs_cc_getcc()) enables constructs which weren't previously sanely
possible, say layering as a curious example.

There's still a little to do on this front, but this was the major
fs interface blast.
 1.15 16-Nov-2007  pooka use puffs_daemon() instead of daemon()
 1.14 05-Nov-2007  pooka Actually, daemonize the file servers before mounting. I might require
at some point that the local protocol handler does not change after
the file system has been mounted.
 1.13 05-Nov-2007  pooka 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.
 1.12 17-Jul-2007  pooka branches: 1.12.4;
* add mntfromname parameter to puffs_init()
* set it in file servers
 1.11 24-Jun-2007  pooka Just to demonstrate namemod a bit further, make this flip the case
of filenames / contents instead of rot13 if -f is given.
 1.10 24-Jun-2007  pooka use puffs_null_setops()
 1.9 20-Jun-2007  pooka fix typo from previous rototill, makes this work again
 1.8 06-Jun-2007  pooka 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...
 1.7 17-May-2007  pooka reflect changes in fs mount: use puffs_mount() instead of
puffs_domount() & puffs_start()
 1.6 24-Apr-2007  pooka allow to mount nullfs types only from directories
TODO: generalize
 1.5 13-Apr-2007  pooka 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--
 1.4 12-Apr-2007  pooka 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().
 1.3 11-Apr-2007  pooka adapt to new readdir signature. no functional change
 1.2 15-Feb-2007  pooka do reclaim
 1.1 15-Jan-2007  pooka Gur Zbba vf Jnavat Perfprag (19% bs Shyy)

Add a little layering experiment, which both exercises the
componentname modification feature of libpuffs and tries to do
layering (just a little too hardcoded for comfort, fow now). This
simply uses the puffs nullfs to present all data and paths in rot13.
You can even mount it twice for extra fun.
 1.12.4.2 09-Jan-2008  matt sync with HEAD
 1.12.4.1 06-Nov-2007  matt sync with HEAD
 1.16.10.1 24-Sep-2008  wrstuden Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
 1.16.6.1 05-Oct-2008  mjf Sync with HEAD.

RSS XML Feed