Home | History | Annotate | Download | only in v7fs
History log of /src/sys/fs/v7fs/v7fs_extern.c
RevisionDateAuthorComments
 1.9  18-Jul-2021  dholland Use macros for the canned parts of device and fifo vnode op tables.

Add GENFS_SPECOP_ENTRIES and GENFS_FIFOOP_ENTRIES macros that contain
the portion of the vnode ops table declaration that is
(conservatively) the same in every fs. Use these in every fs that
supports devices and/or fifos with separate ops tables.

Note that ptyfs works differently (it has one type of vnode with
open-coded dispatch to the specfs code, which I haven't changed in
this commit) and rump/librump/rumpvfs/rumpfs.c has an indirect dynamic
dispatch that already does more or less the same thing, which I also
haven't changed.

Also note that this anticipates a few bits in the next changeset here
and there, and adds missing but unreachable calls in some cases (e.g.
most fses weren't defining whiteout on devices and fifos, but it isn't
reachable there), and it changes parsepath on devices and fifos to
genfs_badop from genfs_parsepath (but it's not reachable there
either).

It appears that devices in kernfs were missing kqfilter, so it's
possible that if you try to use kqueue on /kern/rootdev that it'll
explode.

And finally note that the ops declaration tables aren't
order-dependent. (Other than vop_default_desc has to come first.)
Otherwise this wouldn't work.
 1.8  29-Jun-2021  dholland - Add a new vnode op: VOP_PARSEPATH.
- Move namei_getcomponent to genfs_vnops.c and call it genfs_parsepath.
- Add a parsepath entry to every vnode ops table.

VOP_PARSEPATH takes a directory vnode to be searched and a complete
following path and chooses how much of that path to consume. To begin
with, all parsepath calls are genfs_parsepath, which locates the first
'/' as always.

Note that the call doesn't take the whole struct componentname, only
the string. The other bits of struct componentname should not be
needed and there's no reason to cause potential complications by
exposing them.
 1.7  16-May-2020  christos branches: 1.7.6;
Add ACL support for FFS. From FreeBSD.
 1.6  28-May-2018  chs add a genfs method to allow a file system to limit the range of pages
that are given to a single GOP_WRITE() call. needed by ZFS.
 1.5  17-Feb-2017  hannken branches: 1.5.12;
Add generic genfs_suspendctl() and use it for all file systems.
Layered file systems need work.
 1.4  29-Dec-2014  hannken branches: 1.4.2; 1.4.4;
Change v7fs to vcache.
 1.3  25-Jul-2014  dholland branches: 1.3.4;
Add VOP_FALLOCATE and VOP_FDISCARD to every vnode ops table I can
find.

The filesystem ones all call genfs_eopnotsupp - right now I am only
implementing the plumbing and we can implement fallocate and/or
fdiscard for files later.

The device ones call spec_fallocate (which is also genfs_eopnotsupp)
and spec_fdiscard, which dispatches to the device-level op.

The fifo ones all call vn_fifo_bypass, which also ends up being
EOPNOTSUPP.
 1.2  23-Mar-2014  hannken branches: 1.2.2;
Change all vfsops to use C99 designated initializers.

No functional changes intended.
 1.1  27-Jun-2011  uch branches: 1.1.2; 1.1.12; 1.1.16;
7th Edition(V7) File System support. and NetBSD symbolic-link, socket, FIFO extension. see newfs_v7fs(8).
 1.1.16.1  18-May-2014  rmind sync with head
 1.1.12.2  03-Dec-2017  jdolecek update from HEAD
 1.1.12.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 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.2.2.1  10-Aug-2014  tls Rebase.
 1.3.4.2  28-Aug-2017  skrll Sync with HEAD
 1.3.4.1  06-Apr-2015  skrll Sync with HEAD
 1.4.4.1  21-Apr-2017  bouyer Sync with HEAD
 1.4.2.1  20-Mar-2017  pgoyette Sync with HEAD
 1.5.12.1  25-Jun-2018  pgoyette Sync with HEAD
 1.7.6.1  01-Aug-2021  thorpej Sync with HEAD.

RSS XML Feed