Home | History | Annotate | Download | only in sysvbfs
History log of /src/sys/fs/sysvbfs/sysvbfs.c
RevisionDateAuthorComments
 1.19  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.18  16-May-2020  christos branches: 1.18.6;
Add ACL support for FFS. From FreeBSD.
 1.17  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.16  17-Feb-2017  hannken branches: 1.16.12;
Add generic genfs_suspendctl() and use it for all file systems.
Layered file systems need work.
 1.15  26-Dec-2014  hannken branches: 1.15.2; 1.15.4;
Change sysvbfs to vcache.
 1.14  25-Jul-2014  dholland branches: 1.14.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.13  23-Mar-2014  hannken branches: 1.13.2;
Change all vfsops to use C99 designated initializers.

No functional changes intended.
 1.12  10-May-2008  rumble branches: 1.12.32; 1.12.42; 1.12.48;
Convert file systems to dynamically attach with the new module interface.
Make VFS hooks dynamic while we're here and say farewell to VFS_ATTACH and
VFS_HOOKS_ATTACH linksets.

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

Quick sanity check by ad@.
 1.11  29-Apr-2008  ad branches: 1.11.2;
PR kern/38057 ffs makes assuptions about devvp file system
PR kern/33406 softdeps get stuck in endless loop

Introduce VFS_FSYNC() and call it when syncing a block device, if it
has a mounted file system.
 1.10  28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.9  28-Jan-2008  dholland branches: 1.9.6; 1.9.8; 1.9.10;
Fix some race conditions in rename.
Introduce a per-FS rename lock and new vfsops to manipulate it.
Get this lock while renaming. Also add another relookup() in do_sys_rename,
which is a hack to kludge around some of the worst deficiencies of
ufs_rename.
reviewed-by: pooka (and an earlier rev by ad)
posted on tech-kern with no objections.
 1.8  25-Jan-2008  ad Remove VOP_LEASE. Discussed on tech-kern.
 1.7  26-Nov-2007  pooka Remove the "struct lwp *" argument from all VFS and VOP interfaces.
The general trend is to remove it from all kernel interfaces and
this is a start. In case the calling lwp is desired, curlwp should
be used.

quick consensus on tech-kern
 1.6  26-Jul-2007  pooka branches: 1.6.4; 1.6.6; 1.6.12; 1.6.14;
Use eopnotsupp() instead of vfs_stdsuspendctl() and retire the latter.
 1.5  12-Jul-2007  dsl branches: 1.5.2;
Change the VFS_MOUNT() interface so that the 'data' buffer passed to the
fs code is a kernel buffer, pass though the length of the buffer as well.
Since the length of the userspace buffer isn'it (yet) passed through the mount
system call, add a field to the vfsops structure containing the default length.
Split sys_mount() for calls from compat code.
Ride one of the recent kernel version changes - old fs LKMs will load, but
sys_mount() will reject any attempt to use them.
 1.4  19-Jan-2007  hannken branches: 1.4.6;
New file system suspension API to replace vn_start_write and vn_finished_write.
The suspension helpers are now put into file system specific operations.
This means every file system not supporting these helpers cannot be suspended
and therefore snapshots are no longer possible.

Implemented for file systems of type ffs.

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

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

Welcome to 4.99.9 (new vfs op vfs_suspendctl).
 1.3  09-Dec-2006  chs a smorgasbord of improvements to vnode locking and path lookup:
- LOCKPARENT is no longer relevant for lookup(), relookup() or VOP_LOOKUP().
these now always return the parent vnode locked. namei() works as before.
lookup() and various other paths no longer acquire vnode locks in the
wrong order via vrele(). fixes PR 32535.
as a nice side effect, path lookup is also up to 25% faster.
- the above allows us to get rid of PDIRUNLOCK.
- also get rid of WANTPARENT (just use LOCKPARENT and unlock it).
- remove an assumption in layer_node_find() that all file systems implement
a recursive VOP_LOCK() (unionfs doesn't).
- require that all file systems supply vfs_vptofh and vfs_fhtovp routines.
fill in eopnotsupp() for file systems that don't support being exported
and remove the checks for NULL. (layerfs calls these without checking.)
- in union_lookup1(), don't change refcounts in the ISDOTDOT case, just
adjust which vnode is locked. fixes PR 33374.
- apply fixes for ufs_rename() from ufs_vnops.c rev. 1.61 to ext2fs_rename().
 1.2  01-Jul-2006  martin branches: 1.2.4; 1.2.6; 1.2.8;
Make it compile post time-counter merge
 1.1  29-Dec-2005  tsutsui branches: 1.1.4; 1.1.8; 1.1.16; 1.1.18;
Add preliminary support for System V Boot File System.
Written by UCHIYAMA Yasushi <uch@netbsd>.
 1.1.18.7  04-Feb-2008  yamt sync with head.
 1.1.18.6  07-Dec-2007  yamt sync with head
 1.1.18.5  03-Sep-2007  yamt sync with head.
 1.1.18.4  26-Feb-2007  yamt sync with head.
 1.1.18.3  30-Dec-2006  yamt sync with head.
 1.1.18.2  21-Jun-2006  yamt sync with head.
 1.1.18.1  29-Dec-2005  yamt file sysvbfs.c was added on branch yamt-lazymbuf on 2006-06-21 15:09:30 +0000
 1.1.16.1  13-Jul-2006  gdamore Merge from HEAD.
 1.1.8.1  11-Aug-2006  yamt sync with head
 1.1.4.1  09-Sep-2006  rpaulo sync with head
 1.2.8.1  17-Feb-2007  tron Apply patch (requested by chs in ticket #422):
- Fix various deadlock problems with nullfs and unionfs.
- Speed up path lookups by upto 25%.
 1.2.6.1  10-Dec-2006  yamt sync with head.
 1.2.4.2  01-Feb-2007  ad Sync with head.
 1.2.4.1  12-Jan-2007  ad Sync with head.
 1.4.6.2  20-Aug-2007  ad Sync with HEAD.
 1.4.6.1  15-Jul-2007  ad Sync with head.
 1.5.2.1  15-Aug-2007  skrll Sync with HEAD.
 1.6.14.2  26-Jul-2007  pooka Use eopnotsupp() instead of vfs_stdsuspendctl() and retire the latter.
 1.6.14.1  26-Jul-2007  pooka file sysvbfs.c was added on branch matt-mips64 on 2007-07-26 22:57:39 +0000
 1.6.12.2  18-Feb-2008  mjf Sync with HEAD.
 1.6.12.1  08-Dec-2007  mjf Sync with HEAD.
 1.6.6.2  23-Mar-2008  matt sync with HEAD
 1.6.6.1  09-Jan-2008  matt sync with HEAD
 1.6.4.1  27-Nov-2007  joerg Sync with HEAD. amd64 Xen support needs testing.
 1.9.10.1  16-May-2008  yamt sync with head.
 1.9.8.1  18-May-2008  yamt sync with head.
 1.9.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.11.2.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.12.48.1  18-May-2014  rmind sync with head
 1.12.42.2  03-Dec-2017  jdolecek update from HEAD
 1.12.42.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.12.32.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.13.2.1  10-Aug-2014  tls Rebase.
 1.14.4.2  28-Aug-2017  skrll Sync with HEAD
 1.14.4.1  06-Apr-2015  skrll Sync with HEAD
 1.15.4.1  21-Apr-2017  bouyer Sync with HEAD
 1.15.2.1  20-Mar-2017  pgoyette Sync with HEAD
 1.16.12.1  25-Jun-2018  pgoyette Sync with HEAD
 1.18.6.1  01-Aug-2021  thorpej Sync with HEAD.

RSS XML Feed