The NetBSD Project

CVS log for src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c

[BACK] Up to [cvs.NetBSD.org] / src / external / cddl / osnet / dist / uts / common / fs / zfs

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.80.2.1 / (download) - annotate - [select for diffs], Sun Mar 5 14:32:41 2023 UTC (11 months, 3 weeks ago) by martin
Branch: netbsd-10
CVS Tags: netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1
Changes since 1.80: +31 -17 lines
Diff to previous 1.80 (colored) next main 1.81 (colored)

Pull up following revision(s) (requested by hannken in ticket #110):

	external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c: revision 1.81

Adapt zfs_netbsd_access() to ACL support.  As ZFS itself only
handles VREAD, VWRITE, VEXEC and VAPPEND we use kauth_authorize_vnode()
to handle VADMIN.

From FreeBSD.

Revision 1.81 / (download) - annotate - [select for diffs], Fri Mar 3 10:01:31 2023 UTC (11 months, 3 weeks ago) by hannken
Branch: MAIN
CVS Tags: HEAD
Changes since 1.80: +31 -17 lines
Diff to previous 1.80 (colored)

Adapt zfs_netbsd_access() to ACL support.  As ZFS itself only
handles VREAD, VWRITE, VEXEC and VAPPEND we use kauth_authorize_vnode()
to handle VADMIN.

From FreeBSD.

Revision 1.80 / (download) - annotate - [select for diffs], Mon Oct 3 16:04:19 2022 UTC (16 months, 3 weeks ago) by kardel
Branch: MAIN
CVS Tags: netbsd-10-base
Branch point for: netbsd-10
Changes since 1.79: +1 -1 lines
Diff to previous 1.79 (colored)

Revert. Spotted by hannken@ - fix needs to be in zfs_ctldir.c it is missing
VOP_PATHCONF.

Revision 1.79 / (download) - annotate - [select for diffs], Tue Sep 27 10:33:21 2022 UTC (16 months, 4 weeks ago) by kardel
Branch: MAIN
Changes since 1.78: +1 -1 lines
Diff to previous 1.78 (colored)

for unsupported names return EINVAL as per TOG
https://pubs.opengroup.org/onlinepubs/9699919799/functions/fpathconf.html
discussed with christos@

Revision 1.50.2.11 / (download) - annotate - [select for diffs], Fri Sep 23 10:05:13 2022 UTC (17 months ago) by martin
Branch: netbsd-9
Changes since 1.50.2.10: +1 -0 lines
Diff to previous 1.50.2.10 (colored) to branchpoint 1.50 (colored) next main 1.51 (colored)

Apply patch, requested by dholland in ticket #1532:

	external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	(apply patch)

Fix mounting of wapbl volumes when the block device node is on a zfs volume.
Fixed differently as part of a bigger change in -current in rev 1.73.

Revision 1.78 / (download) - annotate - [select for diffs], Sun Mar 27 16:26:26 2022 UTC (23 months ago) by christos
Branch: MAIN
Changes since 1.77: +10 -1 lines
Diff to previous 1.77 (colored)

add a kauth vnode check for adding links

Revision 1.77 / (download) - annotate - [select for diffs], Wed Dec 22 14:04:10 2021 UTC (2 years, 2 months ago) by simonb
Branch: MAIN
Changes since 1.76: +10 -0 lines
Diff to previous 1.76 (colored)

In zfs_setattr() don't recheck the auth policy for a "nodump" flags
change. zfs_netbsd_setattr() has already checked if this request is
authorised, and our secpolicy_xvattr() doesn't check kauth chflags.

XXX: Fix this propery when we migrate to openzfs.

riastradh@: Seems reasonable.

Revision 1.76 / (download) - annotate - [select for diffs], Wed Oct 20 03:08:19 2021 UTC (2 years, 4 months ago) by thorpej
Branch: MAIN
Changes since 1.75: +9 -27 lines
Diff to previous 1.75 (colored)

Overhaul of the EVFILT_VNODE kevent(2) filter:

- Centralize vnode kevent handling in the VOP_*() wrappers, rather than
  forcing each individual file system to deal with it (except VOP_RENAME(),
  because VOP_RENAME() is a mess and we currently have 2 different ways
  of handling it; at least it's reasonably well-centralized in the "new"
  way).
- Add support for NOTE_OPEN, NOTE_CLOSE, NOTE_CLOSE_WRITE, and NOTE_READ,
  compatible with the same events in FreeBSD.
- Track which kevent notifications clients are interested in receiving
  to avoid doing work for events no one cares about (avoiding, e.g.
  taking locks and traversing the klist to send a NOTE_WRITE when
  someone is merely watching for a file to be deleted, for example).

In support of the above:

- Add support in vnode_if.sh for specifying PRE- and POST-op handlers,
  to be invoked before and after vop_pre() and vop_post(), respectively.
  Basic idea from FreeBSD, but implemented differently.
- Add support in vnode_if.sh for specifying CONTEXT fields in the
  vop_*_args structures.  These context fields are used to convey information
  between the file system VOP function and the VOP wrapper, but do not
  occupy an argument slot in the VOP_*() call itself.  These context fields
  are initialized and subsequently interpreted by PRE- and POST-op handlers.
- Version VOP_REMOVE(), uses the a context field for the file system to report
  back the resulting link count of the target vnode.  Return this in tmpfs,
  udf, nfs, chfs, ext2fs, lfs, and ufs.

NetBSD 9.99.92.

Revision 1.75 / (download) - annotate - [select for diffs], Mon Sep 6 08:37:43 2021 UTC (2 years, 5 months ago) by simonb
Branch: MAIN
Changes since 1.74: +2 -1 lines
Diff to previous 1.74 (colored)

Clamp zfs nlinks at UINT32_MAX (nlink_t max) instead of (much) smaller
16-bit LINK_MAX until we bump LINK_MAX.  Fixes fts(3) problems with
"rm -rf" on zfs directories with > 32766 subdirectories.

Thanks mlelstv@ and mrg@ for helping debug this.

Revision 1.74 / (download) - annotate - [select for diffs], Sun Jul 18 23:57:13 2021 UTC (2 years, 7 months ago) by dholland
Branch: MAIN
Changes since 1.73: +15 -22 lines
Diff to previous 1.73 (colored)

Abolish all the silly indirection macros for initializing vnode ops tables.

These are things of the form #define foofs_op genfs_op, or #define
foofs_op genfs_eopnotsupp, or similar. They serve no purpose besides
obfuscation, and have gotten cutpasted all over everywhere.

Revision 1.73 / (download) - annotate - [select for diffs], Sun Jul 18 23:56:12 2021 UTC (2 years, 7 months ago) by dholland
Branch: MAIN
Changes since 1.72: +4 -44 lines
Diff to previous 1.72 (colored)

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.

Revision 1.50.2.10 / (download) - annotate - [select for diffs], Tue Jul 6 04:22:34 2021 UTC (2 years, 7 months ago) by martin
Branch: netbsd-9
CVS Tags: netbsd-9-3-RELEASE
Changes since 1.50.2.9: +9 -9 lines
Diff to previous 1.50.2.9 (colored) to branchpoint 1.50 (colored)

Pull up following revision(s) - all via patch -
(requested by riastradh in ticket #1317):

	sys/uvm/uvm_page.c: revision 1.248
	sys/uvm/uvm_anon.c: revision 1.80
	sys/rump/librump/rumpvfs/vm_vfs.c: revision 1.40
	sys/rump/librump/rumpvfs/vm_vfs.c: revision 1.41
	sys/rump/librump/rumpkern/vm.c: revision 1.191
	sys/uvm/uvm_pager.c: revision 1.130
	external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c: revision 1.71
	tests/rump/rumpkern/t_vm.c: revision 1.5
	tests/rump/rumpkern/t_vm.c: revision 1.6
	sys/rump/librump/rumpvfs/vm_vfs.c: revision 1.39

Move the handling of PG_PAGEOUT from uvm_aio_aiodone_pages() to
uvm_page_unbusy() so that all callers of uvm_page_unbusy() don't need to
handle this flag separately.  Split out the pages part of uvm_aio_aiodone()
into uvm_aio_aiodone_pages() in rump just like in the real kernel.

In ZFS functions that can fail to copy data between the ARC and VM pages,
use uvm_aio_aiodone_pages() rather than uvm_page_unbusy() so that we can
handle these "I/O" errors.  Fixes PR 55702.

fix an incorrect assertion in the previous commit.

Handle PG_PAGEOUT in uvm_anon_release() too.

Commit the ZFS file that I forgot in this previous commit:

Move the handling of PG_PAGEOUT from uvm_aio_aiodone_pages() to
uvm_page_unbusy() so that all callers of uvm_page_unbusy() don't need to
handle this flag separately.  Split out the pages part of uvm_aio_aiodone()
into uvm_aio_aiodone_pages() in rump just like in the real kernel.

In ZFS functions that can fail to copy data between the ARC and VM pages,
use uvm_aio_aiodone_pages() rather than uvm_page_unbusy() so that we can
handle these "I/O" errors.  Fixes PR 55702.
update the rump copy of uvm_page_unbusy() to match the real version,
in particular handle PG_PAGEOUT.  fixes a few atf tests.
the busypage test is buggy, expect it to fail.

make rump's uvm_aio_aiodone_pages() look more like the kernel version.
fixes some more rumpy assertions.

for the busypage test, replace atf_tc_expect_fail() with atf_tc_skip()
because atf apparently has no way to expect a test program to crash.
fixes PR 55945.

Revision 1.72 / (download) - annotate - [select for diffs], Fri Jul 2 17:14:36 2021 UTC (2 years, 7 months ago) by dholland
Branch: MAIN
Changes since 1.71: +1 -0 lines
Diff to previous 1.71 (colored)

Add VOP_PARSEPATH to zfs's vnode table. "oops"

zfs not being under src/sys strikes again :-(

Revision 1.71 / (download) - annotate - [select for diffs], Sun Nov 15 00:54:13 2020 UTC (3 years, 3 months ago) by chs
Branch: MAIN
CVS Tags: cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Changes since 1.70: +4 -16 lines
Diff to previous 1.70 (colored)

Commit the ZFS file that I forgot in this previous commit:

Move the handling of PG_PAGEOUT from uvm_aio_aiodone_pages() to
uvm_page_unbusy() so that all callers of uvm_page_unbusy() don't need to
handle this flag separately.  Split out the pages part of uvm_aio_aiodone()
into uvm_aio_aiodone_pages() in rump just like in the real kernel.
In ZFS functions that can fail to copy data between the ARC and VM pages,
use uvm_aio_aiodone_pages() rather than uvm_page_unbusy() so that we can
handle these "I/O" errors.  Fixes PR 55702.

Revision 1.70 / (download) - annotate - [select for diffs], Thu Aug 27 09:57:33 2020 UTC (3 years, 5 months ago) by hannken
Branch: MAIN
Changes since 1.69: +9 -2 lines
Diff to previous 1.69 (colored)

Enable NCLOOKUP for ZFS.

Revision 1.69 / (download) - annotate - [select for diffs], Thu May 21 20:43:23 2020 UTC (3 years, 9 months ago) by ad
Branch: MAIN
Changes since 1.68: +8 -9 lines
Diff to previous 1.68 (colored)

Fix bugs in previous.

Revision 1.68 / (download) - annotate - [select for diffs], Wed May 20 20:47:18 2020 UTC (3 years, 9 months ago) by ad
Branch: MAIN
Changes since 1.67: +51 -23 lines
Diff to previous 1.67 (colored)

zfs_netbsd_getpages:

- implement the PGO_LOCKED case
- handle npages > 1 for PGO_SYNCIO

Revision 1.67 / (download) - annotate - [select for diffs], Sat May 16 18:31:46 2020 UTC (3 years, 9 months ago) by christos
Branch: MAIN
Changes since 1.66: +11 -9 lines
Diff to previous 1.66 (colored)

Add ACL support for FFS. From FreeBSD.

Revision 1.50.2.9 / (download) - annotate - [select for diffs], Wed May 13 12:41:43 2020 UTC (3 years, 9 months ago) by martin
Branch: netbsd-9
CVS Tags: netbsd-9-2-RELEASE, netbsd-9-1-RELEASE
Changes since 1.50.2.8: +21 -1 lines
Diff to previous 1.50.2.8 (colored) to branchpoint 1.50 (colored)

Pull up following revision(s) (requested by chs in ticket #903):

	external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c: revision 1.66

fix the handling in putpage of the page containing EOF.

Revision 1.66 / (download) - annotate - [select for diffs], Wed May 13 05:52:54 2020 UTC (3 years, 9 months ago) by chs
Branch: MAIN
Changes since 1.65: +21 -1 lines
Diff to previous 1.65 (colored)

fix the handling in putpage of the page containing EOF.

Revision 1.50.2.8 / (download) - annotate - [select for diffs], Sat May 9 08:20:34 2020 UTC (3 years, 9 months ago) by martin
Branch: netbsd-9
Changes since 1.50.2.7: +8 -3 lines
Diff to previous 1.50.2.7 (colored) to branchpoint 1.50 (colored)

Pull up following revision(s) (requested by hannken in ticket #897):

	external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c: revision 1.33
	external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c: revision 1.65

Revert Rev. 1.63 and add a comment why we have to zil_commit() here:

Operation zfs_znode.c::zfs_zget_cleaner() depends on this
zil_commit() as a barrier to guarantee the znode cannot
get freed before its log entries are resolved.

Operation zfs_zget_cleaner() cannot fail, comment and add assertions.

Revision 1.65 / (download) - annotate - [select for diffs], Thu May 7 09:12:03 2020 UTC (3 years, 9 months ago) by hannken
Branch: MAIN
Changes since 1.64: +8 -3 lines
Diff to previous 1.64 (colored)

Revert Rev. 1.63 and add a comment why we have to zil_commit() here:

Operation zfs_znode.c::zfs_zget_cleaner() depends on this
zil_commit() as a barrier to guarantee the znode cannot
get freed before its log entries are resolved.

Revision 1.27.2.2 / (download) - annotate - [select for diffs], Mon Apr 13 07:56:38 2020 UTC (3 years, 10 months ago) by martin
Branch: phil-wifi
Changes since 1.27.2.1: +154 -51 lines
Diff to previous 1.27.2.1 (colored) to branchpoint 1.27 (colored) next main 1.28 (colored)

Mostly merge changes from HEAD upto 20200411

Revision 1.64 / (download) - annotate - [select for diffs], Sat Mar 14 20:45:23 2020 UTC (3 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406
Changes since 1.63: +3 -13 lines
Diff to previous 1.63 (colored)

Make uvm_pagemarkdirty() responsible for putting vnodes onto the syncer
work list.  Proposed on tech-kern@.

Revision 1.50.2.7 / (download) - annotate - [select for diffs], Mon Mar 9 09:52:00 2020 UTC (3 years, 11 months ago) by martin
Branch: netbsd-9
Changes since 1.50.2.6: +3 -3 lines
Diff to previous 1.50.2.6 (colored) to branchpoint 1.50 (colored)

Pull up following revision(s) (requested by riastradh in ticket #769):

	external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c: revision 1.63

Avoid unnecessary zil_commit on rm.

1. Issue zil_commit only if we're actually updating something --
   there's no need to commit if we're unlinking the file or if
   there's no atime update being applied.

2. Issue zil_commit only if the zfs has sync=always set -- for
   sync=standard there's no need for us to commit anything here since
   no application asked for an explicit sync.

Speeds up untarring base.tgz on top of itself by a factor of about
2x, and speeds up rm by a factor of about 10x, on my system with an
SSD SLOG over SATA.  Histogram of unlink, rmdir, and rename timing
shows dramatic reduction in latency for most samples.

(To be fair, this was not an improvement over zfs; issuing the
unnecessary zil_commit was a self-inflicted performance wound.)

Revision 1.63 / (download) - annotate - [select for diffs], Sun Mar 8 19:59:45 2020 UTC (3 years, 11 months ago) by riastradh
Branch: MAIN
Changes since 1.62: +3 -3 lines
Diff to previous 1.62 (colored)

Avoid unnecessary zil_commit on rm.

1. Issue zil_commit only if we're actually updating something --
   there's no need to commit if we're unlinking the file or if
   there's no atime update being applied.

2. Issue zil_commit only if the zfs has sync=always set -- for
   sync=standard there's no need for us to commit anything here since
   no application asked for an explicit sync.

Speeds up untarring base.tgz on top of itself by a factor of about
2x, and speeds up rm by a factor of about 10x, on my system with an
SSD SLOG over SATA.  Histogram of unlink, rmdir, and rename timing
shows dramatic reduction in latency for most samples.

(To be fair, this was not an improvement over zfs; issuing the
unnecessary zil_commit was a self-inflicted performance wound.)

Revision 1.50.2.6 / (download) - annotate - [select for diffs], Tue Feb 25 20:03:12 2020 UTC (4 years ago) by martin
Branch: netbsd-9
Changes since 1.50.2.5: +16 -1 lines
Diff to previous 1.50.2.5 (colored) to branchpoint 1.50 (colored)

Pull up following revision(s) (requested by riastradh in ticket #725):

	etc/rc.d/mountall: revision 1.12
	external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c: revision 1.59
	external/cddl/osnet/sys/kern/misc.c: revision 1.8
	external/cddl/osnet/dist/uts/common/fs/zfs/spa_history.c: revision 1.5
	external/cddl/osnet/dist/uts/common/fs/zfs/spa_history.c: revision 1.6
	external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c: revision 1.60
	external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c: revision 1.61

Define VOP_STRATEGY on zfs device nodes too.
Fixes eternal hangs in attempts to do I/O on device nodes on zfs.
XXX pullup

Teach zfs spec nodes to VOP_BWRITE too.
Fixes hang on writing to, e.g., ffs mounted on a device node that
lives on zfs.
XXX pullup

Teach device nodes on zfs to handle fsync by calling spec_fsync too.
If zfs=YES, unconditioally do zfs mount/unmount -a.

If you set zfs=YES, presumably you positively want the automatic rc.d
actions, so if there's no /sbin/zfs or if zfs can't find pools with
/etc/zfs/zpool.cache, presumably you would like feedback about that
in rc.log.

Report the OS name and release appropriately for NetBSD.
We are not OpenSolaris or uts!

Mark previous #ifdef __NetBSD__, per request from hannken.

Revision 1.62 / (download) - annotate - [select for diffs], Sun Feb 23 15:46:38 2020 UTC (4 years ago) by ad
Branch: MAIN
CVS Tags: is-mlppp-base, is-mlppp
Changes since 1.61: +27 -25 lines
Diff to previous 1.61 (colored)

UVM locking changes, proposed on tech-kern:

- Change the lock on uvm_object, vm_amap and vm_anon to be a RW lock.
- Break v_interlock and vmobjlock apart.  v_interlock remains a mutex.
- Do partial PV list locking in the x86 pmap.  Others to follow later.

Revision 1.61 / (download) - annotate - [select for diffs], Sun Feb 23 06:15:27 2020 UTC (4 years ago) by riastradh
Branch: MAIN
Changes since 1.60: +14 -1 lines
Diff to previous 1.60 (colored)

Teach device nodes on zfs to handle fsync by calling spec_fsync too.

Revision 1.60 / (download) - annotate - [select for diffs], Sun Feb 23 05:50:25 2020 UTC (4 years ago) by riastradh
Branch: MAIN
Changes since 1.59: +1 -0 lines
Diff to previous 1.59 (colored)

Teach zfs spec nodes to VOP_BWRITE too.

Fixes hang on writing to, e.g., ffs mounted on a device node that
lives on zfs.

XXX pullup

Revision 1.59 / (download) - annotate - [select for diffs], Wed Feb 19 05:52:52 2020 UTC (4 years ago) by riastradh
Branch: MAIN
Changes since 1.58: +1 -0 lines
Diff to previous 1.58 (colored)

Define VOP_STRATEGY on zfs device nodes too.

Fixes eternal hangs in attempts to do I/O on device nodes on zfs.

XXX pullup

Revision 1.50.2.5 / (download) - annotate - [select for diffs], Sun Feb 16 12:20:02 2020 UTC (4 years ago) by martin
Branch: netbsd-9
Changes since 1.50.2.4: +3 -0 lines
Diff to previous 1.50.2.4 (colored) to branchpoint 1.50 (colored)

Pull up following revision(s) (requested by riastradh in ticket #710):

	external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c: revision 1.58

Teach zfs to revoke vnodes the usual way.
XXX pullup

Revision 1.50.2.4 / (download) - annotate - [select for diffs], Sun Feb 16 12:18:27 2020 UTC (4 years ago) by martin
Branch: netbsd-9
Changes since 1.50.2.3: +3 -0 lines
Diff to previous 1.50.2.3 (colored) to branchpoint 1.50 (colored)

Pull up following revision(s) (requested by hannken in ticket #709):

	external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c: revision 1.57

zfs_netbsd_setattr: ignore size changes on device nodes.

Revision 1.58 / (download) - annotate - [select for diffs], Sat Feb 15 19:03:15 2020 UTC (4 years ago) by riastradh
Branch: MAIN
Changes since 1.57: +3 -0 lines
Diff to previous 1.57 (colored)

Teach zfs to revoke vnodes the usual way.

XXX pullup

Revision 1.57 / (download) - annotate - [select for diffs], Thu Feb 13 16:53:32 2020 UTC (4 years ago) by hannken
Branch: MAIN
Changes since 1.56: +3 -0 lines
Diff to previous 1.56 (colored)

zfs_netbsd_setattr: ignore size changes on device nodes.

Revision 1.56 / (download) - annotate - [select for diffs], Sat Jan 18 15:21:32 2020 UTC (4 years, 1 month ago) by ad
Branch: MAIN
Changes since 1.55: +25 -2 lines
Diff to previous 1.55 (colored)

Track page dirtyness for ZFS (yamt-pagecache).  I had forgotten that it had
its own cache.  Thanks to hannken@ for the repro.

Revision 1.55 / (download) - annotate - [select for diffs], Wed Jan 15 17:55:43 2020 UTC (4 years, 1 month ago) by ad
Branch: MAIN
Changes since 1.54: +6 -4 lines
Diff to previous 1.54 (colored)

Merge from yamt-pagecache (after much testing):

- Reduce unnecessary page scan in putpages esp. when an object has a ton of
  pages cached but only a few of them are dirty.

- Reduce the number of pmap operations by tracking page dirtiness more
  precisely in uvm layer.

Revision 1.54 / (download) - annotate - [select for diffs], Fri Dec 13 20:10:21 2019 UTC (4 years, 2 months ago) by ad
Branch: MAIN
Changes since 1.53: +0 -2 lines
Diff to previous 1.53 (colored)

Break the global uvm_pageqlock into a per-page identity lock and a private
lock for use of the pagedaemon policy code.  Discussed on tech-kern.

PR kern/54209: NetBSD 8 large memory performance extremely low
PR kern/54210: NetBSD-8 processes presumably not exiting
PR kern/54727: writing a large file causes unreasonable system behaviour

Revision 1.50.2.3 / (download) - annotate - [select for diffs], Sun Oct 6 11:18:01 2019 UTC (4 years, 4 months ago) by martin
Branch: netbsd-9
CVS Tags: netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1
Changes since 1.50.2.2: +8 -4 lines
Diff to previous 1.50.2.2 (colored) to branchpoint 1.50 (colored)

Pull up following revision(s) (requested by brad in ticket #289):

	external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c: revision 1.53

For ZFS on NetBSD there are a number of functions called
zfs_netbsd_{create,mknod,link,etc..} that call functions called
zfs_{create,mknod,link,etc..}.  These later functions may return a
error code along with a *vpp that is NULL.  This situation was not
handled by the zfs_netbsd_* functions and would result in a panic in a
number of cases.  The simplest to trigger it was filling up a dataset
or pool resulting in a over quota condition.  An attempt to create
another file, or directory at that point would panic.

Revision 1.53 / (download) - annotate - [select for diffs], Fri Oct 4 23:06:19 2019 UTC (4 years, 4 months ago) by brad
Branch: MAIN
CVS Tags: phil-wifi-20191119
Changes since 1.52: +8 -4 lines
Diff to previous 1.52 (colored)



For ZFS on NetBSD there are a number of functions called
zfs_netbsd_{create,mknod,link,etc..} that call functions called
zfs_{create,mknod,link,etc..}.  These later functions may return a
error code along with a *vpp that is NULL.  This situation was not
handled by the zfs_netbsd_* functions and would result in a panic in a
number of cases.  The simplest to trigger it was filling up a dataset
or pool resulting in a over quota condition.  An attempt to create
another file, or directory at that point would panic.

Revision 1.50.2.2 / (download) - annotate - [select for diffs], Mon Aug 26 14:05:25 2019 UTC (4 years, 6 months ago) by martin
Branch: netbsd-9
Changes since 1.50.2.1: +49 -3 lines
Diff to previous 1.50.2.1 (colored) to branchpoint 1.50 (colored)

Pull up following revision(s) (requested by hannken in ticket #114):

	external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c: revision 1.52

Implement kqueue support.

Revision 1.50.2.1 / (download) - annotate - [select for diffs], Mon Aug 26 14:03:33 2019 UTC (4 years, 6 months ago) by martin
Branch: netbsd-9
Changes since 1.50: +3 -0 lines
Diff to previous 1.50 (colored)

Pull up following revision(s) (requested by hannken in ticket #113):

	external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c: revision 1.51

Implement poll support.

Revision 1.52 / (download) - annotate - [select for diffs], Sat Aug 24 12:59:05 2019 UTC (4 years, 6 months ago) by hannken
Branch: MAIN
Changes since 1.51: +49 -3 lines
Diff to previous 1.51 (colored)

Implement kqueue support.

Revision 1.51 / (download) - annotate - [select for diffs], Sat Aug 24 12:58:24 2019 UTC (4 years, 6 months ago) by hannken
Branch: MAIN
Changes since 1.50: +3 -0 lines
Diff to previous 1.50 (colored)

Implement poll support.

Revision 1.50 / (download) - annotate - [select for diffs], Mon Jun 17 08:08:21 2019 UTC (4 years, 8 months ago) by hannken
Branch: MAIN
CVS Tags: netbsd-9-base
Branch point for: netbsd-9
Changes since 1.49: +14 -0 lines
Diff to previous 1.49 (colored)

Add fstrans_start()/fstrans_done() and bounds check to zfs_netbsd_getpages().

Revision 1.49 / (download) - annotate - [select for diffs], Mon Jun 17 08:07:56 2019 UTC (4 years, 8 months ago) by hannken
Branch: MAIN
Changes since 1.48: +1 -1 lines
Diff to previous 1.48 (colored)

Skip atime update on dead "z_sa_hdl == NULL" znodes.

Revision 1.27.2.1 / (download) - annotate - [select for diffs], Mon Jun 10 21:52:02 2019 UTC (4 years, 8 months ago) by christos
Branch: phil-wifi
Changes since 1.27: +395 -93 lines
Diff to previous 1.27 (colored)

Sync with HEAD

Revision 1.48 / (download) - annotate - [select for diffs], Mon Apr 15 12:59:38 2019 UTC (4 years, 10 months ago) by hannken
Branch: MAIN
CVS Tags: phil-wifi-20190609
Changes since 1.47: +148 -2 lines
Diff to previous 1.47 (colored)

Add support for fifos, character and block devices.

Revision 1.47 / (download) - annotate - [select for diffs], Mon Mar 18 09:20:58 2019 UTC (4 years, 11 months ago) by hannken
Branch: MAIN
Changes since 1.46: +1 -1 lines
Diff to previous 1.46 (colored)

Set "mnt_stat.f_fsid" and "mnt_stat.f_fsidx" from the objset guid
like FreeBSD and Illumos do.

Use "f_fsid" for "va_fsid" and cheat NFSD to export snapshots under
".zfs" by setting these snaphots "f_fsidx" to the parents "f_fsidx".

Revision 1.46 / (download) - annotate - [select for diffs], Mon Mar 18 09:20:15 2019 UTC (4 years, 11 months ago) by hannken
Branch: MAIN
Changes since 1.45: +3 -0 lines
Diff to previous 1.45 (colored)

As zfs_netbsd_getpages() ignores "a_count" and processes exactly one page
return an error if "a_count != 1".

Revision 1.45 / (download) - annotate - [select for diffs], Mon Mar 18 09:19:39 2019 UTC (4 years, 11 months ago) by hannken
Branch: MAIN
Changes since 1.44: +2 -1 lines
Diff to previous 1.44 (colored)

Change zfs_readdir() to use malloc() instead of kmem_alloc() to
allocate cookies.  Required by protocol, caller uses free().

Revision 1.44 / (download) - annotate - [select for diffs], Tue Feb 5 09:54:36 2019 UTC (5 years ago) by hannken
Branch: MAIN
Changes since 1.43: +38 -6 lines
Diff to previous 1.43 (colored)

Prepare the implementation of the ZFS control directory ".zfs".

- Move the stub routines from zfs_stub.c to zfs_ctldir.c and
  remove now empty file zfs_stub.c

- Add stub routines for zfsctl_loadvnode() to initialize control
  nodes and zfsctl_snapshot() to retrieve ".zfs/snapshot".

- Add an initial vnode operations vector for control nodes.

- Implement lookup into ".zfs" and lookup ".." from ".zfs/snapshot/<snap>".

- Change nodeid of mounted snapshots to the snapshot object id.

- Respect "-u" flag to "zfs rename <snapshot> ...".

Revision 1.43 / (download) - annotate - [select for diffs], Tue Feb 5 09:50:18 2019 UTC (5 years ago) by hannken
Branch: MAIN
Changes since 1.42: +2 -1 lines
Diff to previous 1.42 (colored)

zfs_netbsd_reclaim(): validate "z_log" before zil_commit().

Revision 1.26.8.4 / (download) - annotate - [select for diffs], Fri Jan 18 08:48:44 2019 UTC (5 years, 1 month ago) by pgoyette
Branch: pgoyette-compat
CVS Tags: pgoyette-compat-merge-20190127
Changes since 1.26.8.3: +39 -18 lines
Diff to previous 1.26.8.3 (colored) to branchpoint 1.26 (colored) next main 1.27 (colored)

Synch with HEAD

Revision 1.42 / (download) - annotate - [select for diffs], Sat Jan 5 09:20:29 2019 UTC (5 years, 1 month ago) by hannken
Branch: MAIN
CVS Tags: pgoyette-compat-20190127, pgoyette-compat-20190118
Changes since 1.41: +13 -0 lines
Diff to previous 1.41 (colored)

Even though zfs_netbsd_putpages() cannot use ZFS_ENTER() it has
to respect the teardown lock.

Enter z_teardown_lock as reader and ZFS_EXIT().

Instead of ZFS_VERIFY_ZP() return without writing and without
error from zfs_putapage() if "z_sa_hdl == NULL".

Revision 1.41 / (download) - annotate - [select for diffs], Tue Jan 1 10:09:26 2019 UTC (5 years, 1 month ago) by hannken
Branch: MAIN
Changes since 1.40: +24 -13 lines
Diff to previous 1.40 (colored)

Cannot use ZFS_ENTER() / ZFS_EXIT() as zfs_netbsd_putpages() is used
during vnode reclaim.

Add missing protection with fstrans.

Revision 1.40 / (download) - annotate - [select for diffs], Tue Jan 1 10:08:42 2019 UTC (5 years, 1 month ago) by hannken
Branch: MAIN
Changes since 1.39: +2 -5 lines
Diff to previous 1.39 (colored)

As already noted in XXX comment do a zil_commit() on reclaim.

Revision 1.26.8.3 / (download) - annotate - [select for diffs], Wed Dec 26 14:01:17 2018 UTC (5 years, 2 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.26.8.2: +162 -65 lines
Diff to previous 1.26.8.2 (colored) to branchpoint 1.26 (colored)

Sync with HEAD, resolve a few conflicts

Revision 1.39 / (download) - annotate - [select for diffs], Thu Dec 13 10:20:51 2018 UTC (5 years, 2 months ago) by hannken
Branch: MAIN
CVS Tags: pgoyette-compat-1226
Changes since 1.38: +2 -0 lines
Diff to previous 1.38 (colored)

Drop v_interlock for zfs_range_lock(), another thread might hold part
of this range and wait for v_interlock.

Revision 1.38 / (download) - annotate - [select for diffs], Thu Dec 13 10:20:20 2018 UTC (5 years, 2 months ago) by hannken
Branch: MAIN
Changes since 1.37: +8 -1 lines
Diff to previous 1.37 (colored)

Operation zfs_range_lock() needs range as (offset,length), not as (low,high).

Revision 1.37 / (download) - annotate - [select for diffs], Thu Dec 6 10:00:40 2018 UTC (5 years, 2 months ago) by hannken
Branch: MAIN
Changes since 1.36: +94 -11 lines
Diff to previous 1.36 (colored)

We have component names as counted strings (cn_nameptr, cn_namelen) but
ZFS expects a null-terminated name.

Always create a copy with PNBUF_GET()/strlcpy()/PNBUF_PUT().

For LOOKUP use a small buffer on stack and allocate/free compomnent names
longer than 30 chars.

Revision 1.36 / (download) - annotate - [select for diffs], Fri Nov 30 09:53:40 2018 UTC (5 years, 2 months ago) by hannken
Branch: MAIN
Changes since 1.35: +3 -14 lines
Diff to previous 1.35 (colored)

Zfs_write() may hide write errors if uiomove() succeeds but a
further dmu_tx_assign() fails because over quota or no space.

Use the emulated uiocopy() and uioskip() like illumos does.

Fix the uiocopy() emulation to not clobber the iovecs.

Revision 1.35 / (download) - annotate - [select for diffs], Wed Nov 28 10:01:28 2018 UTC (5 years, 2 months ago) by hannken
Branch: MAIN
Changes since 1.34: +22 -29 lines
Diff to previous 1.34 (colored)

Redo the access check for setting va_flags in zfs_netbsd_setattr().

Use user flag UF_NODUMP instead of UF_IMMUTABLE for the test as it
is the only user flag supported by all tested file systems.

PR kern/47656 test zfs_flags.

Revision 1.34 / (download) - annotate - [select for diffs], Wed Nov 28 09:58:58 2018 UTC (5 years, 2 months ago) by hannken
Branch: MAIN
Changes since 1.33: +8 -1 lines
Diff to previous 1.33 (colored)

Add missing access check for REMOVE into zfs_netbsd_lookup().

PR kern/47656 test zfs_dirperms.

Revision 1.33 / (download) - annotate - [select for diffs], Wed Nov 28 09:57:59 2018 UTC (5 years, 2 months ago) by hannken
Branch: MAIN
Changes since 1.32: +12 -1 lines
Diff to previous 1.32 (colored)

Add missing access check for setting va_Xtime into zfs_netbsd_setattr().

PR kern/47656 test zfs_times.

Revision 1.32 / (download) - annotate - [select for diffs], Wed Nov 28 09:57:16 2018 UTC (5 years, 2 months ago) by hannken
Branch: MAIN
Changes since 1.31: +4 -0 lines
Diff to previous 1.31 (colored)

We expect VOP_ACCESS() to return EACCESS as general error.

Change zfs_netbsd_access() to translate the common EPERM to EACCES.

Revision 1.31 / (download) - annotate - [select for diffs], Wed Nov 28 09:56:40 2018 UTC (5 years, 2 months ago) by hannken
Branch: MAIN
Changes since 1.30: +2 -1 lines
Diff to previous 1.30 (colored)

Don't try to release a NULL vnode in zfs_netbsd_rename().

Revision 1.30 / (download) - annotate - [select for diffs], Wed Nov 28 09:56:09 2018 UTC (5 years, 2 months ago) by hannken
Branch: MAIN
Changes since 1.29: +2 -0 lines
Diff to previous 1.29 (colored)

Remove an early test for "source and target are equal" from zfs_rename()
that broke BSD semantics.

Revision 1.29 / (download) - annotate - [select for diffs], Wed Nov 28 09:55:06 2018 UTC (5 years, 2 months ago) by hannken
Branch: MAIN
Changes since 1.28: +5 -7 lines
Diff to previous 1.28 (colored)

Always unbusy pages in zfs_putapage() after the data has been written
into the DMU.  Running fsx no longer hangs the kernel.

Revision 1.26.8.2 / (download) - annotate - [select for diffs], Mon Nov 26 01:50:00 2018 UTC (5 years, 3 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.26.8.1: +1 -0 lines
Diff to previous 1.26.8.1 (colored) to branchpoint 1.26 (colored)

Sync with HEAD, resolve a couple of conflicts

Revision 1.28 / (download) - annotate - [select for diffs], Thu Nov 15 04:55:49 2018 UTC (5 years, 3 months ago) by riastradh
Branch: MAIN
CVS Tags: pgoyette-compat-1126
Changes since 1.27: +1 -0 lines
Diff to previous 1.27 (colored)

Need <dev/mm.h> for mm_md_direct_mapped_phys.

It turns out this code always sees __HAVE_MM_MD_DIRECT_MAPPED_PHYS as
disabled on amd64, for reasons that I shall address forthwith, but it
is enabled on aarch64 and so the MKZFS=yes build breaks.

Revision 1.26.8.1 / (download) - annotate - [select for diffs], Mon Jun 25 07:25:21 2018 UTC (5 years, 8 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.26: +2645 -2394 lines
Diff to previous 1.26 (colored)

Sync with HEAD

Revision 1.27 / (download) - annotate - [select for diffs], Mon May 28 21:05:07 2018 UTC (5 years, 8 months ago) by chs
Branch: MAIN
CVS Tags: phil-wifi-base, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625
Branch point for: phil-wifi
Changes since 1.26: +2646 -2395 lines
Diff to previous 1.26 (colored)

merge a new version of the CDDL dtrace and ZFS code.
this changes the upstream vendor from OpenSolaris to FreeBSD,
and this version is based on FreeBSD svn r315983.

in addition to the 10 years of improvements from upstream,
this version also has these NetBSD-specific enhancements:
 - dtrace FBT probes can now be placed in kernel modules.
 - ZFS now supports mmap().

Revision 1.1.1.3 / (download) - annotate - [select for diffs] (vendor branch), Mon May 28 20:53:00 2018 UTC (5 years, 8 months ago) by chs
Branch: sun, FreeBSD
CVS Tags: CDDL-FreeBSD-r315983
Changes since 1.1.1.2: +3407 -2298 lines
Diff to previous 1.1.1.2 (colored)

import new CDDL dtrace and ZFS code from FreeBSD svn r315983.

Revision 1.26 / (download) - annotate - [select for diffs], Fri May 26 14:20:59 2017 UTC (6 years, 9 months ago) by riastradh
Branch: MAIN
CVS Tags: pgoyette-compat-base, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, 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
Branch point for: pgoyette-compat
Changes since 1.25: +2 -1 lines
Diff to previous 1.25 (colored)

Make VOP_RECLAIM do the last unlock of the vnode.

VOP_RECLAIM naturally has exclusive access to the vnode, so having it
locked on entry is not strictly necessary -- but it means if there
are any final operations that must be done on the vnode, such as
ffs_update, requiring exclusive access to it, we can now kassert that
the vnode is locked in those operations.

We can't just have the caller release the last lock because some file
systems don't use genfs_lock, and require the vnode to remain valid
for VOP_UNLOCK to work, notably unionfs.

Revision 1.25 / (download) - annotate - [select for diffs], Wed Apr 26 03:02:47 2017 UTC (6 years, 10 months ago) by riastradh
Branch: MAIN
CVS Tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2
Changes since 1.24: +2 -15 lines
Diff to previous 1.24 (colored)

Change VOP_REMOVE and VOP_RMDIR to preserve lock/ref on dvp.

No change to vp -- the plan is to replace the node by the
componentname in the vop parameters, and let all directory vops do
lookups internally.

Proposed on tech-kern with no objections:
https://mail-index.netbsd.org/tech-kern/2017/04/17/msg021825.html

Revision 1.23.2.1 / (download) - annotate - [select for diffs], Wed Apr 26 02:52:52 2017 UTC (6 years, 10 months ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.23: +2 -2 lines
Diff to previous 1.23 (colored) next main 1.24 (colored)

Sync with HEAD

Revision 1.23.4.1 / (download) - annotate - [select for diffs], Fri Apr 21 16:52:40 2017 UTC (6 years, 10 months ago) by bouyer
Branch: bouyer-socketcan
Changes since 1.23: +2 -2 lines
Diff to previous 1.23 (colored) next main 1.24 (colored)

Sync with HEAD

Revision 1.24 / (download) - annotate - [select for diffs], Tue Apr 11 14:25:01 2017 UTC (6 years, 10 months ago) by riastradh
Branch: MAIN
CVS Tags: pgoyette-localcount-20170426, bouyer-socketcan-base1
Changes since 1.23: +2 -2 lines
Diff to previous 1.23 (colored)

Make VOP_INACTIVE preserve vnode lock on return.

Discussed on tech-kern:
https://mail-index.netbsd.org/tech-kern/2017/04/01/msg021751.html

Ride 7.99.68, a bumpy bus of incremental vfs improvements!

Revision 1.23 / (download) - annotate - [select for diffs], Mon Apr 20 23:03:07 2015 UTC (8 years, 10 months ago) by riastradh
Branch: MAIN
CVS Tags: pgoyette-localcount-base, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, localcount-20160914, bouyer-socketcan-base
Branch point for: pgoyette-localcount, bouyer-socketcan
Changes since 1.22: +3 -11 lines
Diff to previous 1.22 (colored)

Make VOP_LINK return directory still locked and referenced.

Ride 7.99.10 bump.

Revision 1.22 / (download) - annotate - [select for diffs], Fri Apr 10 19:59:10 2015 UTC (8 years, 10 months ago) by riastradh
Branch: MAIN
Changes since 1.21: +1 -1 lines
Diff to previous 1.21 (colored)

Disable mmap on zfs for now.

The implementation is not coherent with read/write, and apparently it
is is so broken that write(2) on a region mapped from a zfs file will
often fail with EINVAL because something passes an offset that is too
large to getpages.

Revision 1.21 / (download) - annotate - [select for diffs], Thu Apr 9 20:18:28 2015 UTC (8 years, 10 months ago) by riastradh
Branch: MAIN
Changes since 1.20: +4 -1 lines
Diff to previous 1.20 (colored)

Pass NetBSD VA_UTIMES_NULL through to ZFS as Solaris ATTR_UTIME.

Makes t_unpriv:zfs_times fail the wrong way instead of silently
allowing the change.

Revision 1.20 / (download) - annotate - [select for diffs], Thu Apr 9 19:47:05 2015 UTC (8 years, 10 months ago) by riastradh
Branch: MAIN
Changes since 1.19: +31 -1 lines
Diff to previous 1.19 (colored)

Advisory locking for zfs.

Revision 1.19 / (download) - annotate - [select for diffs], Thu Apr 9 19:35:55 2015 UTC (8 years, 10 months ago) by riastradh
Branch: MAIN
Changes since 1.18: +3 -81 lines
Diff to previous 1.18 (colored)

Remove some vestigial #if 0 sections.

Revision 1.10.2.2 / (download) - annotate - [select for diffs], Tue Aug 19 23:52:22 2014 UTC (9 years, 6 months ago) by tls
Branch: tls-maxphys
Changes since 1.10.2.1: +8 -67 lines
Diff to previous 1.10.2.1 (colored) next main 1.11 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.17.2.1 / (download) - annotate - [select for diffs], Sun Aug 10 06:50:28 2014 UTC (9 years, 6 months ago) by tls
Branch: tls-earlyentropy
Changes since 1.17: +1 -0 lines
Diff to previous 1.17 (colored) next main 1.18 (colored)

Rebase.

Revision 1.8.6.3 / (download) - annotate - [select for diffs], Thu May 22 14:01:23 2014 UTC (9 years, 9 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.8.6.2: +8 -67 lines
Diff to previous 1.8.6.2 (colored) to branchpoint 1.8 (colored) next main 1.9 (colored)

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")

Revision 1.18 / (download) - annotate - [select for diffs], Wed Apr 9 22:41:38 2014 UTC (9 years, 10 months ago) by riastradh
Branch: MAIN
CVS Tags: yamt-pagecache-base9, tls-maxphys-base, tls-earlyentropy-base, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, 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, netbsd-7
Changes since 1.17: +1 -0 lines
Diff to previous 1.17 (colored)

Don't forget ZFS_EXIT after ZFS_ENTER.

Revision 1.17 / (download) - annotate - [select for diffs], Fri Feb 7 15:29:20 2014 UTC (10 years ago) by hannken
Branch: MAIN
CVS Tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3
Branch point for: tls-earlyentropy
Changes since 1.16: +1 -9 lines
Diff to previous 1.16 (colored)

Change vnode operation lookup to return the resulting vnode *vpp unlocked.
Change cache_lookup() to return an unlocked vnode.

Discussed on tech-kern@

Welcome to 6.99.31

Revision 1.16 / (download) - annotate - [select for diffs], Thu Jan 23 10:13:55 2014 UTC (10 years, 1 month ago) by hannken
Branch: MAIN
Changes since 1.15: +6 -40 lines
Diff to previous 1.15 (colored)

Change vnode operations create, mknod, mkdir and symlink to return
the resulting vnode *vpp unlocked.

Discussed on tech-kern@

Welcome to 6.99.30

Revision 1.15 / (download) - annotate - [select for diffs], Fri Jan 17 10:55:01 2014 UTC (10 years, 1 month ago) by hannken
Branch: MAIN
Changes since 1.14: +3 -21 lines
Diff to previous 1.14 (colored)

Change vnode operations create, mknod, mkdir and symlink to keep the
directory node dvp locked on return.

Discussed on tech-kern@

Welcome to 6.99.29

Revision 1.10.2.1 / (download) - annotate - [select for diffs], Tue Nov 20 02:58:12 2012 UTC (11 years, 3 months ago) by tls
Branch: tls-maxphys
Changes since 1.10: +554 -190 lines
Diff to previous 1.10 (colored)

Resync to 2012-11-19 00:00:00 UTC

Revision 1.8.6.2 / (download) - annotate - [select for diffs], Tue Oct 30 18:56:37 2012 UTC (11 years, 3 months ago) by yamt
Branch: yamt-pagecache
CVS Tags: yamt-pagecache-tag8
Changes since 1.8.6.1: +562 -191 lines
Diff to previous 1.8.6.1 (colored) to branchpoint 1.8 (colored)

sync with head

Revision 1.14 / (download) - annotate - [select for diffs], Thu Oct 18 14:22:57 2012 UTC (11 years, 4 months ago) by riastradh
Branch: MAIN
CVS Tags: yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, agc-symver-base, agc-symver
Changes since 1.13: +33 -14 lines
Diff to previous 1.13 (colored)

Take a first whack at making zfs permissions work.

zfs_access uses secpolicy_vnode_access, so it makes no sense for the
latter to call VOP_ACCESS!

Everything seems to return EACCES instead of EPERM, probably because
that's what kauth returns.  This should be fixed, but that may
require some nontrivial surgery to zfs's calls to secpolicy_*, which
is where kauth gets involved.

This commit imports some code from illumos to implement the routine
secpolicy_vnode_setattr.  This shouldn't be outside dist/, but for
now it is expedient to do so.  We ought to fix that, along with all
the other CDDL code outside dist/, when we next import a newer
version of zfs.

Revision 1.13 / (download) - annotate - [select for diffs], Tue Oct 16 00:04:15 2012 UTC (11 years, 4 months ago) by riastradh
Branch: MAIN
Changes since 1.12: +3 -0 lines
Diff to previous 1.12 (colored)

Restore _PC_NO_TRUNC in zfs_netbsd_pathconf.

Accidentally clobbered it in a previous commit while moving patches
around between source trees -- oops.

Revision 1.12 / (download) - annotate - [select for diffs], Mon Oct 15 23:08:19 2012 UTC (11 years, 4 months ago) by riastradh
Branch: MAIN
Changes since 1.11: +519 -180 lines
Diff to previous 1.11 (colored)

Fix various issues in zfs life cycle, locking, and vop protocol.

- Restore some zfs locking and unlocking that got lost randomly.

- Enable use of the BSD vnode lock.  Lock order: all BSD vnode locks
are taken before all zfs internal locks.  There remains an issue with
O_EXCL, to be solved later (famous last words).  KASSERT the locking
scheme up the wazoo.

- Take our cruft out of zfs_lookup and move it to zfs_netbsd_lookup.
Restore much of the way zfs_lookup looked to make merging future
versions easier.  Disable use of the namecache for now because its
locking dance is too scary to contemplate.

- Implement BSD semantics for rename, to appease our tests.  This is
a provisional kludge; eventually we need VOP_RENAME to take a flag
specifying whether to use BSD semantics or POSIX semantics.

- Simplify zfs_netbsd_reclaim and make it work.  Now that getnewvnode
never tries to vclean anything itself, we need not worry about
recursion of ZFS_OBJ_MUTEX locks.

- Clarify and fix genfs node initialization and destruction.

zfs passes most of our atf vfs tests now, including the rename races.

Still to do:

- fix the impedance mismatch between our permissions model and zfs's;
- fix O_EXCL (nontrivial);
- throw dirconc at it and see how badly it explodes;
- find why zpool sometimes wedges itself during mkfs; and
- find why pool caches sometimes seem to get corrupted.

Revision 1.11 / (download) - annotate - [select for diffs], Mon Oct 1 18:19:18 2012 UTC (11 years, 4 months ago) by njoly
Branch: MAIN
Changes since 1.10: +3 -0 lines
Diff to previous 1.10 (colored)

Add _PC_NO_TRUNC support in zfs_netbsd_pathconf().

Revision 1.10 / (download) - annotate - [select for diffs], Sat Sep 1 16:19:00 2012 UTC (11 years, 5 months ago) by pooka
Branch: MAIN
Branch point for: tls-maxphys
Changes since 1.9: +8 -1 lines
Diff to previous 1.9 (colored)

For now, make vop_islocked more like vop_lock and vop_unlock (i.e. don't
even attempt to do anything).

Revision 1.8.6.1 / (download) - annotate - [select for diffs], Tue Apr 17 00:04:09 2012 UTC (11 years, 10 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.8: +50 -27 lines
Diff to previous 1.8 (colored)

sync with head

Revision 1.9 / (download) - annotate - [select for diffs], Sun Nov 20 02:54:25 2011 UTC (12 years, 3 months ago) by christos
Branch: MAIN
CVS Tags: yamt-pagecache-base5, yamt-pagecache-base4, 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
Changes since 1.8: +50 -27 lines
Diff to previous 1.8 (colored)

enough with the compile time warnings.

Revision 1.8 / (download) - annotate - [select for diffs], Sun Jan 2 05:12:03 2011 UTC (13 years, 1 month ago) by dholland
Branch: MAIN
CVS Tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, matt-mips64-premerge-20101231, cherry-xenmp-base, cherry-xenmp, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Branch point for: yamt-pagecache
Changes since 1.7: +0 -3 lines
Diff to previous 1.7 (colored)

Remove references to SAVESTART in zfs.

Revision 1.7 / (download) - annotate - [select for diffs], Tue Nov 30 10:45:27 2010 UTC (13 years, 2 months ago) by dholland
Branch: MAIN
Changes since 1.6: +2 -17 lines
Diff to previous 1.6 (colored)

SAVENAME and HASBUF namei flags have been abolished; update zfs to match.

Revision 1.6 / (download) - annotate - [select for diffs], Sun Jul 25 10:31:45 2010 UTC (13 years, 7 months ago) by hannken
Branch: MAIN
Changes since 1.5: +0 -6 lines
Diff to previous 1.5 (colored)

VOP_LOCK() will not be called with LK_INTERLOCK.

Revision 1.5 / (download) - annotate - [select for diffs], Thu Jun 24 13:03:05 2010 UTC (13 years, 8 months ago) by hannken
Branch: MAIN
Changes since 1.4: +2 -2 lines
Diff to previous 1.4 (colored)

Clean up vnode lock operations pass 2:

VOP_UNLOCK(vp, flags) -> VOP_UNLOCK(vp): Remove the unneeded flags argument.

Welcome to 5.99.32.

Discussed on tech-kern.

Revision 1.4 / (download) - annotate - [select for diffs], Sat Feb 27 23:43:53 2010 UTC (14 years ago) by haad
Branch: MAIN
Changes since 1.3: +1549 -559 lines
Diff to previous 1.3 (colored)

Merge NetBSD local changes to new zfs version 22 sources.

Revision 1.1.1.2 / (download) - annotate - [select for diffs] (vendor branch), Sat Feb 27 22:31:31 2010 UTC (14 years ago) by haad
Branch: sun, FreeBSD
CVS Tags: osnet-20100224
Changes since 1.1.1.1: +945 -540 lines
Diff to previous 1.1.1.1 (colored)

Import new Opensolaris sources for zfs/dtrace.

Opensolaris mercurial changeset: 11751:58c0c8f4305f

Revision 1.3 / (download) - annotate - [select for diffs], Wed Oct 28 23:44:51 2009 UTC (14 years, 4 months ago) by haad
Branch: MAIN
CVS Tags: matt-premerge-20091211, darran-pre-netbsd, darran-pre-freebsd, darran-pre-dtrace
Changes since 1.2: +54 -13 lines
Diff to previous 1.2 (colored)

Add workaround about zfs vnode reclaiming deadlock by checking if we don't
ehld ZFS_MUTEX_OBJ already. If we can lock OBJ_MUTEX deffer execution of
zfs_zinactive to taskq. Code was inspired by FreeBSD zfs_freebsd_reclaim.

XXX. This needs to be fixed after finding final solution for vnode lifecycle.

Revision 1.2 / (download) - annotate - [select for diffs], Fri Aug 7 20:16:45 2009 UTC (14 years, 6 months ago) by haad
Branch: MAIN
Changes since 1.1: +1075 -1132 lines
Diff to previous 1.1 (colored)

Add NetBSD specific changes to OpenSolaris code. These changes were made
by Andrew Doran and me. Thank you Andrew for your great help.

Oked by core@ and ad@.

Revision 1.1.1.1 / (download) - annotate - [select for diffs] (vendor branch), Fri Aug 7 18:33:31 2009 UTC (14 years, 6 months ago) by haad
Branch: sun, FreeBSD
CVS Tags: osnet-20081117
Changes since 1.1: +0 -0 lines
Diff to previous 1.1 (colored)

Import Opensolaris source code used with zfs port. Zfs code si from date 
200811.

Revision 1.1 / (download) - annotate - [select for diffs], Fri Aug 7 18:33:31 2009 UTC (14 years, 6 months ago) by haad
Branch: MAIN

Initial revision

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>