History log of /src/lib/libpuffs/puffs_ops.3
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-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-base
# 1.48 03-Dec-2021 pho

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.


# 1.47 04-Aug-2021 andvar

fix typos in puffs man pages.


Revision tags: netbsd-9-4-RELEASE netbsd-9-3-RELEASE cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 netbsd-9-2-RELEASE cjep_staticlib_x-base netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-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 pgoyette-compat-base perseant-stdc-iso10646-base
# 1.46 03-Jul-2017 wiz

Remove workaround for ancient HTML generation code.


Revision tags: netbsd-8-3-RELEASE netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914
# 1.45 29-Aug-2016 tnn

mention puffs_node_pathconf and puffs_node_advlock


Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.44 12-Nov-2015 christos

consistency fixes.


# 1.43 09-Nov-2015 christos

fix return type


# 1.42 16-Feb-2015 wiz

filesystem -> file system


# 1.41 31-Oct-2014 wiz

Bump date for previous. Remove trailing space.


# 1.40 31-Oct-2014 manu

libpuffs support for fallocate and fdiscard operations


# 1.39 18-Oct-2014 snj

src is too big these days to tolerate superfluous apostrophes. It's
"its", people!


# 1.38 16-Aug-2014 wiz

Bump date for previous.


# 1.37 16-Aug-2014 manu

Add an open2 method, like open but with an additionnal oflags used
by the filesystem to send back information about the file.
This is used to implement PUFFS_OPEN_IO_DIRECT by which the filesystem
tells the kernel that read/write should bypass the page cache.


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 tls-maxphys-base
# 1.36 16-Aug-2012 wiz

branches: 1.36.10;
Whitespace fixes. Bump date for previous.


# 1.35 16-Aug-2012 manu

Fix regression that has been introduced when the lookup/reclaim race
condition was addressed in libpuffs by counting lookups.

The fix assumes that cookies map to struct puffs_cookie, which has not
been documented as a requirement for filesystems using libpuffs. As an
example, we got burnt by this assumption in libp2k (kern/46734), and
we fixed bit by actually mapping libp2k cookies to struct puffs_node.

It is unlikely, but there may be third party filesystems that use cookies
unmapped to struct puffs_node, and they were left broken for now.

- we introduce a puffs_init() flag PUFFS_FLAG_PNCOOKIE that let filesystems
inform libpuffs that they map cookies to struct puffs_node. Is that flag
is used, the lookup/reclaim race condition fix is enabled. We enable the
flag for libp2k.

- filesystems that use puffs_pn_new() obviouslty use struct puffs_node
and gain PUFFS_FLAG_PNCOOKIE automatically even if they did not specify
it in puffs_init(). This include all our PUFFS filesystem in-tree except
libp2k.

- for filesystems not willing to use struct puffs_node, we introduce a
reclaim2 vnop, which is reclaim with an additionnal lookup count argument.
This vnop let the filesystem implement the lookup/reclaim race fix on
its own.


# 1.34 28-Jul-2012 njoly

Kill extra Fc macro.


# 1.33 27-Jun-2012 wiz

Bump date for previous, remove trailing whitespace.


# 1.32 27-Jun-2012 manu

Pass the FAF flag to handlers:
- setattr_ttl is updated to add a flag argument. Since it was not present in
a previous release, we can change its API
- write2 is introduced, this is write with an extra flag for FAF.
- fsync already has the FAF information in a flag and needs no change
- for other operations, FAF is unconditional


Revision tags: yamt-pagecache-base5
# 1.31 18-Apr-2012 wiz

Bump date for previous.
New sentence, new line; remove trailing whitespace; fix typos;
punctuation nits.


# 1.30 18-Apr-2012 manu

- When using PUFFS_KFLAG_CACHE_FS_TTL, do not use puffs_node to carry
attribute and TTL fora newly created node. Instead extend puffs_newinfo
and add puffs_newinfo_setva() and puffs_newinfo_setttl()
- Remove node_mk_common_final in libperfuse. It used to set uid/gid for
a newly created vnode but has been made redundant along time ago since
uid and gid are properly set in FUSE header.
- In libperfuse, check for corner case where opc = 0 on INACTIVE and RECLAIM (how is it possible? Check for it to avoid a crash anyway)
- In libperfuse, make sure we unlimit RLIMIT_AS and RLIMIT_DATA so that
we do notrun out of memory because the kernel is lazy at reclaiming vnodes.
- In libperfuse, cleanup style of perfuse_destroy_pn()


Revision tags: yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.29 04-Jul-2011 manu

branches: 1.29.2; 1.29.4;
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 tags: cherry-xenmp-base
# 1.28 19-Apr-2011 manu

In node_lookup() ops, pcn->pcn_nameiop contains a NAMEI_* constant, not
PUFFSLOOKUP_*


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.27 13-Dec-2010 pooka

document abortop. part of PR kern/44208


# 1.26 21-May-2010 pooka

mention extended attribute ops


Revision tags: matt-premerge-20091211 jym-xensuspend-nbase jym-xensuspend-base
# 1.25 11-Apr-2009 wiz

New sentence, new line.


# 1.24 11-Apr-2009 joerg

Fix markup.


# 1.23 20-Feb-2009 pooka

Remove the paragraph saying interfaces will change without warning.
Note that a stable version of puffs first appeared in NetBSD 5.0.


# 1.22 25-Nov-2008 pooka

branches: 1.22.2;
i'm almost certain that puffs_cooie_t is supposed to be puffs_cookie_t


Revision tags: netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.21 12-Aug-2008 pooka

branches: 1.21.4;
Replace void * by puffs_cookie_t where appropriate. No functional change.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-base hpcarm-cleanup-base
# 1.20 16-Dec-2007 pooka

branches: 1.20.6;
Clarify that link_target in node_symlink is null-terminated.


Revision tags: cube-autoconf-base
# 1.19 02-Dec-2007 wiz

Add comma in enumeration.


# 1.18 01-Dec-2007 wiz

Fix a typo that has migrated across files.


# 1.17 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.16 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.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 1.15 31-Jul-2007 pooka

branches: 1.15.2; 1.15.4;
Per rumble's lead in vnodeops, clarify the bit about readdir cookies.


# 1.14 25-Jul-2007 pooka

* add missing credential handle to fsync args
* and now with more cosmetic attack


# 1.13 25-Jul-2007 pooka

pure cosmetics: minor facelift


# 1.12 20-Jul-2007 pooka

note caveat with puffs_node_poll


# 1.11 19-Jul-2007 wiz

Use HTML escapes. Drop trailing whitespace. Punctuation nits.


# 1.10 19-Jul-2007 pooka

wizd reminded me that if I provide the synopsis for puffs_node_seek(),
I would do well to also describe what it does. so make it so.


# 1.9 18-Jul-2007 pooka

uncomment puffs_node_seek - it's supported and in use


# 1.8 18-Jul-2007 pooka

puffs_cid* is always const


# 1.7 05-Jul-2007 pooka

apply ketchup to recent source changes in libpuffs


# 1.6 18-May-2007 pooka

document puffs_node_poll


# 1.5 09-May-2007 pooka

document puffs_setback()


# 1.4 18-Apr-2007 pooka

fix readdir prototype


# 1.3 17-Apr-2007 pooka

* describe fhtonode, nodetofh and suspend
* update description of readdir to match reality


# 1.2 17-Apr-2007 pooka

improve markup and descriptions


# 1.1 16-Apr-2007 pooka

Move file system and node callbacks into their own manual page.
Improve markup and descriptions a bit (not completely finished yet).