CVS commit: [netbsd-9] src/external/cddl/osnet/dist/uts/common/fs/zfs

2021-04-22 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Thu Apr 22 10:07:58 UTC 2021

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs [netbsd-9]: arc.c

Log Message:
Pull up following revision(s) (requested by hannken in ticket #1250):

external/cddl/osnet/dist/uts/common/fs/zfs/arc.c: revision 1.20

Prevent blocking l2arc_feed_thread() forever, skip the
cv_timedwait() for negative or zero ticks.


To generate a diff of this commit:
cvs rdiff -u -r1.14.2.2 -r1.14.2.3 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.14.2.2 src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.14.2.3
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.14.2.2	Wed Dec 11 14:46:28 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c	Thu Apr 22 10:07:58 2021
@@ -7246,8 +7246,15 @@ l2arc_feed_thread(void *dummy __unused)
 
 	while (l2arc_thread_exit == 0) {
 		CALLB_CPR_SAFE_BEGIN();
+#ifdef __NetBSD__
+		clock_t now = ddi_get_lbolt();
+		if (next > now)
+			(void) cv_timedwait(_feed_thr_cv,
+			_feed_thr_lock, next - now);
+#else
 		(void) cv_timedwait(_feed_thr_cv, _feed_thr_lock,
 		next - ddi_get_lbolt());
+#endif
 		CALLB_CPR_SAFE_END(, _feed_thr_lock);
 		next = ddi_get_lbolt() + hz;
 



CVS commit: [netbsd-9] src/external/cddl/osnet/dist/uts/common/fs/zfs/sys

2021-03-22 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Mon Mar 22 18:22:59 UTC 2021

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs/sys [netbsd-9]:
zfs_context.h

Log Message:
Pull up following revision(s) (requested by hannken in ticket #1235):

external/cddl/osnet/dist/uts/common/fs/zfs/sys/zfs_context.h: revision 
1.3

Use the right uid / gid for nobody:nobody like FreeBSD does.

Prevents null pointer dereferences when ZFS replaces this
illegal (according to IS_EPHEMERAL()) id with another
illegal id in operation zfs_fuid_create_cred() and
finally zfs_log_create() dereferences fuidp being NULL.

Adresses PR misc/55042 (Panic when creating a directory on a NFS served ZFS)


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.2.2.1 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zfs_context.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zfs_context.h
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zfs_context.h:1.2 src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zfs_context.h:1.2.2.1
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zfs_context.h:1.2	Sat Jun 22 09:48:39 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zfs_context.h	Mon Mar 22 18:22:59 2021
@@ -157,13 +157,13 @@ extern "C" {
 #define fm_panic			panic
 #define getffd_getfile
 #define getminor(a)			minor(a)
-#define GID_NOBODY			(-2)
+#define GID_NOBODY			(39)
 #define issig(x)			(sigispending(curlwp, 0))
 #define kmem_debugging()		0
 #define releasef			fd_putfile
 #define strfree(str)			kmem_free((str), strlen(str)+1)
 #define td_rul_ru
-#define UID_NOBODY			(-2)
+#define UID_NOBODY			(32767)
 #define vnode_pager_setsize(vp, size)	zfs_netbsd_setsize(vp, size)
 #define zone_get_hostid(a)		0
 



CVS commit: [netbsd-9] src/external/cddl/osnet/dist/uts/common/fs/zfs

2020-11-29 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Sun Nov 29 11:39:45 UTC 2020

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs [netbsd-9]: vdev_disk.c

Log Message:
Pull up following revision(s) (requested by yhardy in ticket #1138):

external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c: revision 1.19

Use vn_close to release the vnodes in the error handling blocks, since
the vnodes were opened for writing. Fix proposed on tech-kern
and improved by hannken@.


To generate a diff of this commit:
cvs rdiff -u -r1.11.2.5 -r1.11.2.6 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11.2.5 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11.2.6
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11.2.5	Tue Jun 30 17:55:35 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c	Sun Nov 29 11:39:45 2020
@@ -215,7 +215,11 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi
 		return (SET_ERROR(error));
 	}
 	if (vp->v_type != VBLK) {
+#ifdef __NetBSD__
+		vn_close(vp, FREAD|FWRITE, kcred);
+#else
 		vrele(vp);
+#endif
 		vd->vdev_stat.vs_aux = VDEV_AUX_OPEN_FAILED;
 		return (SET_ERROR(EINVAL));
 	}
@@ -247,7 +251,11 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi
 	error = workqueue_create(>vd_wq, "vdevsync",
 	vdev_disk_flush, dvd, PRI_NONE, IPL_NONE, WQ_MPSAFE);
 	if (error != 0) {
+#ifdef __NetBSD__
+		vn_close(vp, FREAD|FWRITE, kcred);
+#else
 		vrele(vp);
+#endif
 		return (SET_ERROR(error));
 	}
 



CVS commit: [netbsd-9] src/external/cddl/osnet/dist/uts/common/fs/zfs

2020-06-30 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Tue Jun 30 17:55:35 UTC 2020

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs [netbsd-9]: vdev_disk.c

Log Message:
Pull up following revision(s) (requested by jmcneill in ticket #970):

external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c: revision 1.17
external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c: revision 1.18

If calling d_minphys on the parent disk device, make sure we use the
parent disk device's dev_t. Fixes zfs on wedges on ld(4).
XXX pullup-9

Don't assume everything is a wedge and has a parent device. On non-wedges
this crashes.

Instead, just talk to the referenced device and rely on the dk driver
to pass requests correctly.


To generate a diff of this commit:
cvs rdiff -u -r1.11.2.4 -r1.11.2.5 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11.2.4 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11.2.5
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11.2.4	Wed Apr 29 13:45:38 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c	Tue Jun 30 17:55:35 2020
@@ -222,7 +222,7 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi
 
 	pdk = NULL;
 	if (getdiskinfo(vp, ) == 0)
-		pdk = disk_find(dkw.dkw_parent);
+		pdk = disk_find(dkw.dkw_devname);
 
 	/* XXXNETBSD Once tls-maxphys gets merged this block becomes:
 		dvd->vd_maxphys = (pdk ? disk_maxphys(pdk) : MACHINE_MAXPHYS);



CVS commit: [netbsd-9] src/external/cddl/osnet/dist/uts/common/fs/zfs

2020-05-13 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Wed May 13 12:41:43 UTC 2020

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs [netbsd-9]: zfs_vnops.c

Log Message:
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.


To generate a diff of this commit:
cvs rdiff -u -r1.50.2.8 -r1.50.2.9 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50.2.8 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50.2.9
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50.2.8	Sat May  9 08:20:34 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Wed May 13 12:41:43 2020
@@ -6049,9 +6049,29 @@ zfs_putapage(vnode_t *vp, page_t **pp, i
 		goto out_unbusy;
 	}
 
+	/*
+	 * Calculate the length and assert that no whole pages are past EOF.
+	 * This check is equivalent to "off + len <= round_page(zp->z_size)",
+	 * with gyrations to avoid signed integer overflow.
+	 */
+
 	off = pp[0]->offset;
 	len = count * PAGESIZE;
-	KASSERT(off + len <= round_page(zp->z_size));
+	KASSERT(off <= zp->z_size);
+	KASSERT(len <= round_page(zp->z_size));
+	KASSERT(off <= round_page(zp->z_size) - len);
+
+	/*
+	 * If EOF is within the last page, reduce len to avoid writing past
+	 * the file size in the ZFS buffer.  Assert that
+	 * "off + len <= zp->z_size", again avoiding signed integer overflow.
+	 */
+
+	if (len > zp->z_size - off) {
+		len = zp->z_size - off;
+	}
+	KASSERT(len <= zp->z_size);
+	KASSERT(off <= zp->z_size - len);
 
 	if (zfs_owner_overquota(zfsvfs, zp, B_FALSE) ||
 	zfs_owner_overquota(zfsvfs, zp, B_TRUE)) {



CVS commit: [netbsd-9] src/external/cddl/osnet/dist/uts/common/fs/zfs

2020-05-09 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Sat May  9 08:20:34 UTC 2020

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs [netbsd-9]: zfs_vnops.c
zfs_znode.c

Log Message:
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.


To generate a diff of this commit:
cvs rdiff -u -r1.50.2.7 -r1.50.2.8 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c
cvs rdiff -u -r1.29 -r1.29.2.1 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50.2.7 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50.2.8
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50.2.7	Mon Mar  9 09:52:00 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Sat May  9 08:20:34 2020
@@ -5836,11 +5836,16 @@ zfs_netbsd_reclaim(void *v)
 			zp->z_atime_dirty = 0;
 			dmu_tx_commit(tx);
 		}
-
-		if (zfsvfs->z_os->os_sync == ZFS_SYNC_ALWAYS)
-			zil_commit(zfsvfs->z_log, zp->z_id);
 	}
 
+	/*
+	 * 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.
+	 */
+	if (zfsvfs->z_log)
+		zil_commit(zfsvfs->z_log, zp->z_id);
+
 	if (zp->z_sa_hdl == NULL)
 		zfs_znode_free(zp);
 	else

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.29 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.29.2.1
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.29	Mon Jun 17 08:08:50 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c	Sat May  9 08:20:34 2020
@@ -1288,6 +1288,12 @@ zfs_zget(zfsvfs_t *zfsvfs, uint64_t obj_
 	return error;
 }
 
+/*
+ * Get a known cached znode, to be used from zil_commit()->zfs_get_data()
+ * to resolve log entries.  Doesn't take a reference, will never fail and
+ * depends on zfs_vnops.c::zfs_netbsd_reclaim() running a zil_commit()
+ * before the znode gets freed.
+ */
 int
 zfs_zget_cleaner(zfsvfs_t *zfsvfs, uint64_t obj_num, znode_t **zpp)
 {
@@ -1295,31 +1301,26 @@ zfs_zget_cleaner(zfsvfs_t *zfsvfs, uint6
 	sa_handle_t *hdl;
 	dmu_object_info_t doi;
 	znode_t *zp;
-	int err;
 
 	ZFS_OBJ_HOLD_ENTER(zfsvfs, obj_num);
 
-	err = sa_buf_hold(zfsvfs->z_os, obj_num, NULL, );
-	if (err) {
-		ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num);
-		return (SET_ERROR(err));
-	}
+	VERIFY(0 == sa_buf_hold(zfsvfs->z_os, obj_num, NULL, ));
 
 	dmu_object_info_from_db(db, );
-	if (doi.doi_bonus_type != DMU_OT_SA &&
-	(doi.doi_bonus_type != DMU_OT_ZNODE ||
+	ASSERT(doi.doi_bonus_type == DMU_OT_SA ||
 	(doi.doi_bonus_type == DMU_OT_ZNODE &&
-	doi.doi_bonus_size < sizeof (znode_phys_t {
-		sa_buf_rele(db, NULL);
-		ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num);
-		return (SET_ERROR(EINVAL));
-	}
+	doi.doi_bonus_size >= sizeof (znode_phys_t)));
+
 	hdl = dmu_buf_get_user(db);
 	ASSERT3P(hdl, !=, NULL);
+
 	zp = sa_get_userdata(hdl);
 	ASSERT3U(zp->z_id, ==, obj_num);
+
 	sa_buf_rele(db, NULL);
+
 	ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num);
+
 	*zpp = zp;
 	return (0);
 }



CVS commit: [netbsd-9] src/external/cddl/osnet/dist/uts/common/fs/zfs

2020-04-29 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Wed Apr 29 13:45:38 UTC 2020

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs [netbsd-9]: vdev_disk.c

Log Message:
Pull up following revision(s) (requested by riastradh in ticket #870):

external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c: revision 1.16

Set up more of a fake struct buf, for ldminphys.

Fixes:
arm64# zpool create rpool ld4
[ 198.4376097] panic: Trap: Data Abort (EL1): Translation Fault L1 with read 
access for 0178: pc c017acf4: opcode f940bc00: ldr x0, 
[x0,#376]
[ 198.4694793] fp c00073026660 ldminphys() at c017acf4 
netbsd:ldminphys+0x34
[ 198.4792624] fp c00073026680 vdev_disk_open.part.4() at c13d4c4c 
zfs:vdev_disk_open.part.4+0x37c
[ 198.4792624] fp c000730268d0 vdev_open() at c13d2530 
zfs:vdev_open+0x68
[ 198.4792624] fp c00073026920 vdev_open_children() at c13d2958 
zfs:vdev_open_children+0x40
[ 198.4792624] fp c00073026950 vdev_root_open() at c13dad48 
zfs:vdev_root_open+0x30

XXX pullup-9


To generate a diff of this commit:
cvs rdiff -u -r1.11.2.3 -r1.11.2.4 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11.2.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11.2.4
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11.2.3	Sat Mar 21 15:18:57 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c	Wed Apr 29 13:45:38 2020
@@ -228,7 +228,10 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi
 		dvd->vd_maxphys = (pdk ? disk_maxphys(pdk) : MACHINE_MAXPHYS);
 	*/
 	{
-		struct buf buf = { .b_bcount = MAXPHYS };
+		struct buf buf = {
+			.b_dev = vp->v_rdev,
+			.b_bcount = MAXPHYS,
+		};
 		if (pdk && pdk->dk_driver && pdk->dk_driver->d_minphys)
 			(*pdk->dk_driver->d_minphys)();
 		dvd->vd_maxphys = buf.b_bcount;



CVS commit: [netbsd-9] src/external/cddl/osnet/dist/uts/common/fs/zfs

2020-03-09 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Mon Mar  9 09:52:00 UTC 2020

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs [netbsd-9]: zfs_vnops.c

Log Message:
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.)


To generate a diff of this commit:
cvs rdiff -u -r1.50.2.6 -r1.50.2.7 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50.2.6 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50.2.7
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50.2.6	Tue Feb 25 20:03:12 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Mon Mar  9 09:52:00 2020
@@ -5836,10 +5836,10 @@ zfs_netbsd_reclaim(void *v)
 			zp->z_atime_dirty = 0;
 			dmu_tx_commit(tx);
 		}
-	}
 
-	if (zfsvfs->z_log)
-		zil_commit(zfsvfs->z_log, zp->z_id);
+		if (zfsvfs->z_os->os_sync == ZFS_SYNC_ALWAYS)
+			zil_commit(zfsvfs->z_log, zp->z_id);
+	}
 
 	if (zp->z_sa_hdl == NULL)
 		zfs_znode_free(zp);



CVS commit: [netbsd-9] src/external/cddl/osnet/dist/uts/common/fs/zfs

2020-02-16 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Sun Feb 16 12:20:02 UTC 2020

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs [netbsd-9]: zfs_vnops.c

Log Message:
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


To generate a diff of this commit:
cvs rdiff -u -r1.50.2.4 -r1.50.2.5 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50.2.4 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50.2.5
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50.2.4	Sun Feb 16 12:18:27 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Sun Feb 16 12:20:02 2020
@@ -6286,6 +6286,7 @@ const struct vnodeopv_entry_desc zfs_vno
 	{ _ioctl_desc,		zfs_netbsd_ioctl },
 	{ _poll_desc,		genfs_poll },
 	{ _kqfilter_desc,		genfs_kqfilter },
+	{ _revoke_desc,		genfs_revoke },
 	{ _fsync_desc,		zfs_netbsd_fsync },
 	{ _remove_desc,		zfs_netbsd_remove },
 	{ _link_desc,		zfs_netbsd_link },
@@ -6330,6 +6331,7 @@ const struct vnodeopv_entry_desc zfs_spe
 	{ _ioctl_desc,		spec_ioctl },
 	{ _poll_desc,		spec_poll },
 	{ _kqfilter_desc,		spec_kqfilter },
+	{ _revoke_desc,		spec_revoke },
 	{ _fsync_desc,		zfs_netbsd_fsync },
 	{ _remove_desc,		spec_remove },
 	{ _link_desc,		spec_link },
@@ -6374,6 +6376,7 @@ const struct vnodeopv_entry_desc zfs_fif
 	{ _ioctl_desc,		vn_fifo_bypass },
 	{ _poll_desc,		vn_fifo_bypass },
 	{ _kqfilter_desc,		vn_fifo_bypass },
+	{ _revoke_desc,		vn_fifo_bypass },
 	{ _fsync_desc,		zfs_netbsd_fsync },
 	{ _remove_desc,		vn_fifo_bypass },
 	{ _link_desc,		vn_fifo_bypass },



CVS commit: [netbsd-9] src/external/cddl/osnet/dist/uts/common/fs/zfs

2020-02-16 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Sun Feb 16 12:18:27 UTC 2020

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs [netbsd-9]: zfs_vnops.c

Log Message:
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.


To generate a diff of this commit:
cvs rdiff -u -r1.50.2.3 -r1.50.2.4 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50.2.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50.2.4
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50.2.3	Sun Oct  6 11:18:01 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Sun Feb 16 12:18:27 2020
@@ -5553,6 +5553,9 @@ zfs_netbsd_setattr(void *v)
 
 	zflags = VTOZ(vp)->z_pflags;
 
+	/* Ignore size changes on device nodes. */
+	if (vp->v_type == VBLK || vp->v_type == VCHR)
+		xvap.xva_vattr.va_mask &= ~AT_SIZE;
 	if (vap->va_flags != VNOVAL) {
 		int error;
 



CVS commit: [netbsd-9] src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-12-11 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Wed Dec 11 14:46:28 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs [netbsd-9]: arc.c

Log Message:
Pull up following revision(s) (requested by sevan in ticket #540):

external/cddl/osnet/dist/uts/common/fs/zfs/arc.c: revision 1.16

We currently lack a tunable to control ZFS prefetch, so skip the warning and
FreeBSD specific instructions on settings.


To generate a diff of this commit:
cvs rdiff -u -r1.14.2.1 -r1.14.2.2 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.14.2.1 src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.14.2.2
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.14.2.1	Sun Dec  8 15:54:34 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c	Wed Dec 11 14:46:28 2019
@@ -6218,6 +6218,7 @@ arc_init(void)
 	}
 
 #ifdef _KERNEL
+#ifdef __FreeBSD__
 	if (TUNABLE_INT_FETCH("vfs.zfs.prefetch_disable", _prefetch_disable))
 		prefetch_tunable_set = 1;
 
@@ -6239,6 +6240,7 @@ arc_init(void)
 		zfs_prefetch_disable = 1;
 	}
 #endif
+#endif
 	/* Warn about ZFS memory and address space requirements. */
 	if (((uint64_t)physmem * PAGESIZE) < (256 + 128 + 64) * (1 << 20)) {
 		printf("ZFS WARNING: Recommended minimum RAM size is 512MB; "
@@ -6247,9 +6249,11 @@ arc_init(void)
 	if (kmem_size() < 512 * (1 << 20)) {
 		printf("ZFS WARNING: Recommended minimum kmem_size is 512MB; "
 		"expect unstable behavior.\n");
+#ifdef __FreeBSD__
 		printf(" Consider tuning vm.kmem_size and "
 		"vm.kmem_size_max\n");
 		printf(" in /boot/loader.conf.\n");
+#endif
 	}
 #endif
 }



CVS commit: [netbsd-9] src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-12-08 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Sun Dec  8 14:39:07 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs [netbsd-9]: vdev_disk.c

Log Message:
Pull up following revision(s) (requested by jmcneill in ticket #514):

external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c: revision 1.13

Initialize b_dev before passing buf to d_minphys (ldminphys needs this)


To generate a diff of this commit:
cvs rdiff -u -r1.11.2.1 -r1.11.2.2 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11.2.1 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11.2.2
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11.2.1	Tue Aug 20 11:44:14 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c	Sun Dec  8 14:39:07 2019
@@ -244,6 +244,7 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi
 			} else {
 pdk = NULL;
 			}
+			buf.b_dev = vp->v_rdev;
 		}
 		if (pdk && pdk->dk_driver && pdk->dk_driver->d_minphys)
 			(*pdk->dk_driver->d_minphys)();