CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-08-24 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sat Aug 24 12:59:34 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: dnode.c

Log Message:
Add missing dmu_zfetch_fini() when dnode_create() lost the race.


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

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



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-08-24 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sat Aug 24 12:59:34 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: dnode.c

Log Message:
Add missing dmu_zfetch_fini() when dnode_create() lost the race.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.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/dnode.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c:1.7 src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c:1.8
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c:1.7	Sun May 26 10:21:00 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c	Sat Aug 24 12:59:34 2019
@@ -447,6 +447,9 @@ dnode_create(objset_t *os, dnode_phys_t 
 	if (dnh->dnh_dnode != NULL) {
 		/* Lost the allocation race. */
 		mutex_exit(>os_lock);
+#ifdef __NetBSD__
+		dmu_zfetch_fini(>dn_zfetch);
+#endif
 		kmem_cache_free(dnode_cache, dn);
 		return (dnh->dnh_dnode);
 	}



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-08-24 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sat Aug 24 12:59:06 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c

Log Message:
Implement kqueue support.


To generate a diff of this commit:
cvs rdiff -u -r1.51 -r1.52 \
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.51 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.52
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.51	Sat Aug 24 12:58:24 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Sat Aug 24 12:59:05 2019
@@ -,6 +,16 @@ zfs_rename(vnode_t *sdvp, vnode_t **svpp
 			if (*tvpp != NULL)
 cache_purge(*tvpp);
 			cache_purge_negative(tdvp);
+#ifdef __NetBSD__
+			if (*svpp == *tvpp) {
+VN_KNOTE(sdvp, NOTE_WRITE);
+VN_KNOTE(*svpp, (szp->z_links == 0 ?
+NOTE_DELETE : NOTE_LINK));
+			} else {
+genfs_rename_knote(sdvp, *svpp, tdvp, *tvpp,
+((tzp != NULL) && (tzp->z_links == 0)));
+			}
+#endif
 		}
 	}
 
@@ -5094,6 +5104,10 @@ zfs_netbsd_write(void *v)
 {
 	struct vop_write_args *ap = v;
 	vnode_t *vp = ap->a_vp;
+	znode_t *zp = VTOZ(vp);
+	struct uio *uio = ap->a_uio;
+	off_t osize = zp->z_size;
+	int error, resid;
 
 	switch (vp->v_type) {
 	case VBLK:
@@ -5105,7 +5119,13 @@ zfs_netbsd_write(void *v)
 		return (VOCALL(fifo_vnodeop_p, VOFFSET(vop_write), ap));
 	}
 
-	return (zfs_write(vp, ap->a_uio, ioflags(ap->a_ioflag), ap->a_cred, NULL));
+	resid = uio->uio_resid;
+	error = zfs_write(vp, uio, ioflags(ap->a_ioflag), ap->a_cred, NULL);
+	if (resid > uio->uio_resid)
+		VN_KNOTE(vp, NOTE_WRITE |
+		(zp->z_size > osize ? NOTE_EXTEND : 0));
+
+	return error;
 }
 
 static int
@@ -5296,6 +5316,8 @@ zfs_netbsd_create(void *v)
 
 	KASSERT((error == 0) == (*vpp != NULL));
 	KASSERT(VOP_ISLOCKED(dvp) == LK_EXCLUSIVE);
+	if (error == 0)
+		VN_KNOTE(dvp, NOTE_WRITE);
 	VOP_UNLOCK(*vpp, 0);
 
 	return (error);
@@ -5334,6 +5356,8 @@ zfs_netbsd_mknod(void *v)
 
 	KASSERT((error == 0) == (*vpp != NULL));
 	KASSERT(VOP_ISLOCKED(dvp) == LK_EXCLUSIVE);
+	if (error == 0)
+		VN_KNOTE(dvp, NOTE_WRITE);
 	VOP_UNLOCK(*vpp, 0);
 
 	return (error);
@@ -5363,6 +5387,10 @@ zfs_netbsd_remove(void *v)
 	error = zfs_remove(dvp, vp, nm, cnp->cn_cred);
 
 	PNBUF_PUT(nm);
+	if (error == 0) {
+		VN_KNOTE(vp, NOTE_DELETE);
+		VN_KNOTE(dvp, NOTE_WRITE);
+	}
 	vput(vp);
 	KASSERT(VOP_ISLOCKED(dvp) == LK_EXCLUSIVE);
 	return (error);
@@ -5398,6 +5426,8 @@ zfs_netbsd_mkdir(void *v)
 
 	KASSERT((error == 0) == (*vpp != NULL));
 	KASSERT(VOP_ISLOCKED(dvp) == LK_EXCLUSIVE);
+	if (error == 0)
+		VN_KNOTE(dvp, NOTE_WRITE | NOTE_LINK);
 	VOP_UNLOCK(*vpp, 0);
 
 	return (error);
@@ -5427,6 +5457,10 @@ zfs_netbsd_rmdir(void *v)
 	error = zfs_rmdir(dvp, vp, nm, cnp->cn_cred);
 
 	PNBUF_PUT(nm);
+	if (error == 0) {
+		VN_KNOTE(dvp, NOTE_WRITE | NOTE_LINK);
+		VN_KNOTE(vp, NOTE_DELETE);
+	}
 	vput(vp);
 	KASSERT(VOP_ISLOCKED(dvp) == LK_EXCLUSIVE);
 	return error;
@@ -5571,7 +5605,11 @@ zfs_netbsd_setattr(void *v)
 			return error;
 	}
 
-	return (zfs_setattr(vp, (vattr_t *), flags, cred, NULL));
+	error = zfs_setattr(vp, (vattr_t *), flags, cred, NULL);
+	if (error == 0)
+		VN_KNOTE(vp, NOTE_ATTRIB);
+
+	return error;
 }
 
 static int
@@ -5675,7 +5713,8 @@ zfs_netbsd_symlink(void *v)
 	error = zfs_symlink(dvp, vpp, nm, vap, target, cnp->cn_cred, 0);
 
 	PNBUF_PUT(nm);
-
+	if (error == 0)
+		VN_KNOTE(ap->a_dvp, NOTE_WRITE);
 	KASSERT((error == 0) == (*vpp != NULL));
 	KASSERT(VOP_ISLOCKED(dvp) == LK_EXCLUSIVE);
 	VOP_UNLOCK(*vpp, 0);
@@ -5716,6 +5755,10 @@ zfs_netbsd_link(void *v)
 	NULL, 0);
 
 	PNBUF_PUT(nm);
+	if (error == 0) {
+		VN_KNOTE(vp, NOTE_LINK);
+		VN_KNOTE(dvp, NOTE_WRITE);
+	}
 	VOP_UNLOCK(vp, 0);
 	return error;
 }
@@ -6235,6 +6278,7 @@ const struct vnodeopv_entry_desc zfs_vno
 	{ _write_desc,		zfs_netbsd_write },
 	{ _ioctl_desc,		zfs_netbsd_ioctl },
 	{ _poll_desc,		genfs_poll },
+	{ _kqfilter_desc,		genfs_kqfilter },
 	{ _fsync_desc,		zfs_netbsd_fsync },
 	{ _remove_desc,		zfs_netbsd_remove },
 	{ _link_desc,		zfs_netbsd_link },
@@ -6278,6 +6322,7 @@ const struct vnodeopv_entry_desc zfs_spe
 	{ _write_desc,		/**/zfs_netbsd_write },
 	{ _ioctl_desc,		spec_ioctl },
 	{ _poll_desc,		spec_poll },
+	{ _kqfilter_desc,		spec_kqfilter },
 	{ _fsync_desc,		zfs_netbsd_fsync },
 	{ _remove_desc,		spec_remove },
 	{ _link_desc,		spec_link },
@@ -6321,6 +6366,7 @@ const struct vnodeopv_entry_desc zfs_fif
 	{ _write_desc,		/**/zfs_netbsd_write },
 	{ _ioctl_desc,		vn_fifo_bypass },
 	{ _poll_desc,		vn_fifo_bypass },
+	{ _kqfilter_desc,		vn_fifo_bypass },
 	{ _fsync_desc,		zfs_netbsd_fsync },
 	{ _remove_desc,		vn_fifo_bypass },
 	{ _link_desc,		vn_fifo_bypass },



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-08-24 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sat Aug 24 12:59:06 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c

Log Message:
Implement kqueue support.


To generate a diff of this commit:
cvs rdiff -u -r1.51 -r1.52 \
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.



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-08-24 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sat Aug 24 12:58:25 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c

Log Message:
Implement poll support.


To generate a diff of this commit:
cvs rdiff -u -r1.50 -r1.51 \
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.



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-08-24 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sat Aug 24 12:58:25 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c

Log Message:
Implement poll support.


To generate a diff of this commit:
cvs rdiff -u -r1.50 -r1.51 \
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 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.51
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50	Mon Jun 17 08:08:21 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Sat Aug 24 12:58:24 2019
@@ -6234,6 +6234,7 @@ const struct vnodeopv_entry_desc zfs_vno
 	{ _read_desc,		zfs_netbsd_read },
 	{ _write_desc,		zfs_netbsd_write },
 	{ _ioctl_desc,		zfs_netbsd_ioctl },
+	{ _poll_desc,		genfs_poll },
 	{ _fsync_desc,		zfs_netbsd_fsync },
 	{ _remove_desc,		zfs_netbsd_remove },
 	{ _link_desc,		zfs_netbsd_link },
@@ -6276,6 +6277,7 @@ const struct vnodeopv_entry_desc zfs_spe
 	{ _read_desc,		/**/zfs_netbsd_read },
 	{ _write_desc,		/**/zfs_netbsd_write },
 	{ _ioctl_desc,		spec_ioctl },
+	{ _poll_desc,		spec_poll },
 	{ _fsync_desc,		zfs_netbsd_fsync },
 	{ _remove_desc,		spec_remove },
 	{ _link_desc,		spec_link },
@@ -6318,6 +6320,7 @@ const struct vnodeopv_entry_desc zfs_fif
 	{ _read_desc,		/**/zfs_netbsd_read },
 	{ _write_desc,		/**/zfs_netbsd_write },
 	{ _ioctl_desc,		vn_fifo_bypass },
+	{ _poll_desc,		vn_fifo_bypass },
 	{ _fsync_desc,		zfs_netbsd_fsync },
 	{ _remove_desc,		vn_fifo_bypass },
 	{ _link_desc,		vn_fifo_bypass },



CVS commit: src/external/cddl/osnet/sys/kern

2019-08-20 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Aug 20 08:12:50 UTC 2019

Modified Files:
src/external/cddl/osnet/sys/kern: taskq.c

Log Message:
task_executor: prevent use after free, the task function may free
the tasq entry.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/external/cddl/osnet/sys/kern/taskq.c

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



CVS commit: src/external/cddl/osnet/sys/kern

2019-08-20 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Aug 20 08:12:50 UTC 2019

Modified Files:
src/external/cddl/osnet/sys/kern: taskq.c

Log Message:
task_executor: prevent use after free, the task function may free
the tasq entry.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/external/cddl/osnet/sys/kern/taskq.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/sys/kern/taskq.c
diff -u src/external/cddl/osnet/sys/kern/taskq.c:1.10 src/external/cddl/osnet/sys/kern/taskq.c:1.11
--- src/external/cddl/osnet/sys/kern/taskq.c:1.10	Tue Jun 11 09:05:33 2019
+++ src/external/cddl/osnet/sys/kern/taskq.c	Tue Aug 20 08:12:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: taskq.c,v 1.10 2019/06/11 09:05:33 hannken Exp $	*/
+/*	$NetBSD: taskq.c,v 1.11 2019/08/20 08:12:50 hannken Exp $	*/
 
 /*-
  * Copyright (c) 2019 The NetBSD Foundation, Inc.
@@ -75,6 +75,7 @@ task_executor(struct threadpool_job *job
 	struct taskq_executor *state = (struct taskq_executor *)job;
 	taskq_t *tq = state->te_self;
 	taskq_ent_t *tqe; 
+	bool is_dynamic;
 	int error;
 
 	lwp_setspecific(taskq_lwp_key, tq);
@@ -97,13 +98,14 @@ task_executor(struct threadpool_job *job
 		tqe = SIMPLEQ_FIRST(>tq_list);
 		KASSERT(tqe != NULL);
 		SIMPLEQ_REMOVE_HEAD(>tq_list, tqent_list);
+		is_dynamic = tqe->tqent_dynamic;
 		tqe->tqent_queued = 0;
 		mutex_exit(>tq_lock);
 
 		(*tqe->tqent_func)(tqe->tqent_arg);
 
 		mutex_enter(>tq_lock);
-		if (tqe->tqent_dynamic)
+		if (is_dynamic)
 			kmem_free(tqe, sizeof(*tqe));
 		tq->tq_active--;
 	}



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-08-20 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Aug 20 08:12:14 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: vdev_disk.c

Log Message:
Rearrange the evaluation of "dvd_maxphys" so it works for wedges too.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
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 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.12
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11	Wed Jun 12 04:20:18 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c	Tue Aug 20 08:12:14 2019
@@ -220,23 +220,33 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi
 	}
 
 	/* XXXNETBSD Once tls-maxphys gets merged this block becomes:
-		pdk = disk_find_blk(vp->v_rdev);
+		if (VOP_IOCTL(vp, DIOCGWEDGEINFO, , FREAD, NOCRED) == 0)
+			pdk = disk_find(dkw.dkw_parent);
+		else
+			pdk = disk_find_blk(vp->v_rdev);
 		dvd->vd_maxphys = (pdk ? disk_maxphys(pdk) : MACHINE_MAXPHYS);
 	*/
 	{
 		struct buf buf = { .b_bcount = MAXPHYS };
-		const char *dev_name;
 
-		dev_name = devsw_blk2name(major(vp->v_rdev));
-		if (dev_name) {
-			char disk_name[16];
-
-			snprintf(disk_name, sizeof(disk_name), "%s%d",
-			dev_name, DISKUNIT(vp->v_rdev));
-			pdk = disk_find(disk_name);
-			if (pdk && pdk->dk_driver && pdk->dk_driver->d_minphys)
-(*pdk->dk_driver->d_minphys)();
+		if (VOP_IOCTL(vp, DIOCGWEDGEINFO, , FREAD, NOCRED) == 0) {
+			pdk = disk_find(dkw.dkw_parent);
+		} else {
+			const char *dev_name;
+
+			dev_name = devsw_blk2name(major(vp->v_rdev));
+			if (dev_name) {
+char disk_name[16];
+
+snprintf(disk_name, sizeof(disk_name), "%s%d",
+dev_name, DISKUNIT(vp->v_rdev));
+pdk = disk_find(disk_name);
+			} else {
+pdk = NULL;
+			}
 		}
+		if (pdk && pdk->dk_driver && pdk->dk_driver->d_minphys)
+			(*pdk->dk_driver->d_minphys)();
 		dvd->vd_maxphys = buf.b_bcount;
 	}
 



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-08-20 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Aug 20 08:12:14 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: vdev_disk.c

Log Message:
Rearrange the evaluation of "dvd_maxphys" so it works for wedges too.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
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.



CVS commit: src/external/cddl/osnet/dist/lib/libzfs/common

2019-08-20 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Aug 20 08:11:21 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/lib/libzfs/common: libzfs_import.c

Log Message:
Always open the raw block devices as "" like it
comes from sysctl "hw.disknames" without attaching the raw
partition letter.  Now pools on wedges get imported too.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.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/lib/libzfs/common/libzfs_import.c
diff -u src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c:1.4 src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c:1.5
--- src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c:1.4	Mon May 28 21:05:06 2018
+++ src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c	Tue Aug 20 08:11:21 2019
@@ -1262,9 +1262,7 @@ zpool_find_import_impl(libzfs_handle_t *
 			static const char mib_name[] = "hw.disknames";
 			size_t len;
 			char *disknames, *last, *name;
-			char part;
 
-			part = getrawpartition();
 			if (sysctlbyname(mib_name, NULL, , NULL, 0) == -1) {
 zfs_error_aux(hdl, strerror(errno));
 (void) zfs_error_fmt(hdl, EZFS_BADPATH,
@@ -1277,11 +1275,10 @@ zpool_find_import_impl(libzfs_handle_t *
 			disknames = zfs_alloc(hdl, len + 2);
 			(void)sysctlbyname(mib_name, disknames, , NULL, 0);
 
-
 			for ((name = strtok_r(disknames, " ", )); name;
 			(name = strtok_r(NULL, " ", ))) {
 slice = zfs_alloc(hdl, sizeof (rdsk_node_t));
-slice->rn_name = zfs_asprintf(hdl, "%s%c", name, 'a' + part);
+slice->rn_name = zfs_strdup(hdl, name);
 slice->rn_avl = _cache;
 slice->rn_dfd = dfd;
 slice->rn_hdl = hdl;



CVS commit: src/external/cddl/osnet/dist/lib/libzfs/common

2019-08-20 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Aug 20 08:11:21 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/lib/libzfs/common: libzfs_import.c

Log Message:
Always open the raw block devices as "" like it
comes from sysctl "hw.disknames" without attaching the raw
partition letter.  Now pools on wedges get imported too.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c

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



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-08-13 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Aug 13 08:03:25 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: dsl_dataset.c

Log Message:
Add missing "defined(__NetBSD__)" to make "zfs promote" work.


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

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



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-08-13 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Aug 13 08:03:25 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: dsl_dataset.c

Log Message:
Add missing "defined(__NetBSD__)" to make "zfs promote" work.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.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/dsl_dataset.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c:1.4 src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c:1.5
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c:1.4	Wed May 22 08:45:32 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c	Tue Aug 13 08:03:25 2019
@@ -2796,7 +2796,7 @@ dsl_dataset_promote_sync(void *arg, dmu_
 		ASSERT(!dsl_prop_hascb(ds));
 	}
 
-#if defined(__FreeBSD__) && defined(_KERNEL)
+#if (defined(__FreeBSD__) || defined(__NetBSD__)) && defined(_KERNEL)
 	mutex_exit(_namespace_lock);
 
 	kmem_free(newname, MAXPATHLEN);



CVS commit: src/sys/dev/usb

2019-08-11 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sun Aug 11 13:16:10 UTC 2019

Modified Files:
src/sys/dev/usb: if_urndis.c

Log Message:
urndis_attach: change "sc->sc_bulkout_no" to "un->un_ed[USBNET_ENDPT_TX]"
in DPRINTF().

Kernels ALL/amd64 and ALL/i386 compile again.


To generate a diff of this commit:
cvs rdiff -u -r1.27 -r1.28 src/sys/dev/usb/if_urndis.c

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



CVS commit: src/sys/dev/usb

2019-08-11 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sun Aug 11 13:16:10 UTC 2019

Modified Files:
src/sys/dev/usb: if_urndis.c

Log Message:
urndis_attach: change "sc->sc_bulkout_no" to "un->un_ed[USBNET_ENDPT_TX]"
in DPRINTF().

Kernels ALL/amd64 and ALL/i386 compile again.


To generate a diff of this commit:
cvs rdiff -u -r1.27 -r1.28 src/sys/dev/usb/if_urndis.c

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

Modified files:

Index: src/sys/dev/usb/if_urndis.c
diff -u src/sys/dev/usb/if_urndis.c:1.27 src/sys/dev/usb/if_urndis.c:1.28
--- src/sys/dev/usb/if_urndis.c:1.27	Sat Aug 10 02:17:36 2019
+++ src/sys/dev/usb/if_urndis.c	Sun Aug 11 13:16:10 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_urndis.c,v 1.27 2019/08/10 02:17:36 mrg Exp $ */
+/*	$NetBSD: if_urndis.c,v 1.28 2019/08/11 13:16:10 hannken Exp $ */
 /*	$OpenBSD: if_urndis.c,v 1.31 2011/07/03 15:47:17 matthew Exp $ */
 
 /*
@@ -21,7 +21,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: if_urndis.c,v 1.27 2019/08/10 02:17:36 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_urndis.c,v 1.28 2019/08/11 13:16:10 hannken Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -1032,7 +1032,7 @@ urndis_attach(device_t parent, device_t 
 			DPRINTF(("%s: in=0x%x, out=0x%x\n",
 			DEVNAME(un),
 			un->un_ed[USBNET_ENDPT_RX],
-			sc->sc_bulkout_no));
+			un->un_ed[USBNET_ENDPT_TX]));
 			break;
 		}
 	}



CVS commit: src/external/cddl/osnet/dist/lib/libdtrace/common

2019-07-24 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed Jul 24 16:57:45 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/lib/libdtrace/common: dt_open.c

Log Message:
Handle automatic module loading on device open more like FreeBSD does.

Where FreeBSD uses a module "dtraceall" that depends on all dtrace
modules we now load the basic set "dtrace sdt fbt syscall" on open.


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 \
src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c

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



CVS commit: src/external/cddl/osnet/dist/lib/libdtrace/common

2019-07-24 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed Jul 24 16:57:45 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/lib/libdtrace/common: dt_open.c

Log Message:
Handle automatic module loading on device open more like FreeBSD does.

Where FreeBSD uses a module "dtraceall" that depends on all dtrace
modules we now load the basic set "dtrace sdt fbt syscall" on open.


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 \
src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.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/lib/libdtrace/common/dt_open.c
diff -u src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.15 src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.16
--- src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.15	Sun Jul 21 15:38:06 2019
+++ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c	Wed Jul 24 16:57:45 2019
@@ -1140,19 +1140,36 @@ dt_vopen(int version, int flags, int *er
 	 */
 	dt_provmod_open(, );
 
-#ifdef __NetBSD__
+#if defined(__NetBSD__)
 	modctl_load_t cmdargs;
+	const char * const mod_list[] = {
+		"dtrace",
+		"dtrace_sdt",
+		"dtrace_fbt",
+		"dtrace_syscall"
+	};
+
+	dtfd = -1;
+	err = 0;
+	for (i = 0; i < __arraycount(mod_list); i++) {
+		cmdargs.ml_filename = mod_list[i];
+		cmdargs.ml_flags = MODCTL_NO_PROP;
+		cmdargs.ml_props = NULL;
+		cmdargs.ml_propslen = 0;
 
-	cmdargs.ml_filename = "dtrace";
-	cmdargs.ml_flags = MODCTL_NO_PROP;
-	cmdargs.ml_props = NULL;
-	cmdargs.ml_propslen = 0;
-
-	(void)modctl(MODCTL_LOAD, );
+		if (modctl(MODCTL_LOAD, ) < 0 && errno != EEXIST) {
+			err = errno;
+			break;
+		}
+	}
+	if (err == 0) {
+		dtfd = open("/dev/dtrace/dtrace", O_RDWR);
+		err = errno; /* save errno from opening dtfd */
+	}
 #endif
+#if defined(__FreeBSD__)
 	dtfd = open("/dev/dtrace/dtrace", O_RDWR);
 	err = errno; /* save errno from opening dtfd */
-#if defined(__FreeBSD__)
 	/*
 	 * Automatically load the 'dtraceall' module if we couldn't open the
 	 * char device.



CVS commit: src/external/cddl/osnet/sys/sys

2019-07-24 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed Jul 24 16:54:37 UTC 2019

Removed Files:
src/external/cddl/osnet/sys/sys: int_limits.h int_types.h pcpu.h sema.h
sig.h thread.h types32.h va_list.h zfs_prop.h

Log Message:
Remove unneeded includes.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r0 src/external/cddl/osnet/sys/sys/int_limits.h \
src/external/cddl/osnet/sys/sys/int_types.h \
src/external/cddl/osnet/sys/sys/types32.h \
src/external/cddl/osnet/sys/sys/va_list.h \
src/external/cddl/osnet/sys/sys/zfs_prop.h
cvs rdiff -u -r1.4 -r0 src/external/cddl/osnet/sys/sys/pcpu.h
cvs rdiff -u -r1.3 -r0 src/external/cddl/osnet/sys/sys/sema.h \
src/external/cddl/osnet/sys/sys/sig.h
cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/sys/sys/thread.h

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



CVS commit: src/external/cddl/osnet/dev/dtrace

2019-07-23 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jul 23 09:06:12 UTC 2019

Modified Files:
src/external/cddl/osnet/dev/dtrace: dtrace_load.c

Log Message:
Create "dtrace_taskq" here like FreeBSD does.

PR kern/54397: Panic when loading a DTrace module whilst DTrace is running


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/dtrace_load.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/dev/dtrace/dtrace_load.c
diff -u src/external/cddl/osnet/dev/dtrace/dtrace_load.c:1.4 src/external/cddl/osnet/dev/dtrace/dtrace_load.c:1.5
--- src/external/cddl/osnet/dev/dtrace/dtrace_load.c:1.4	Mon May 28 21:05:03 2018
+++ src/external/cddl/osnet/dev/dtrace/dtrace_load.c	Tue Jul 23 09:06:12 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_load.c,v 1.4 2018/05/28 21:05:03 chs Exp $	*/
+/*	$NetBSD: dtrace_load.c,v 1.5 2019/07/23 09:06:12 hannken Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -88,9 +88,9 @@ dtrace_load(void *dummy)
 	/* Hang our hook for exceptions. */
 	dtrace_invop_init();
 
-#ifdef __FreeBSD__
 	dtrace_taskq = taskq_create("dtrace_taskq", 1, maxclsyspri, 0, 0, 0);
 
+#ifdef __FreeBSD__
 	dtrace_arena = new_unrhdr(1, INT_MAX, _unr_mtx);
 
 	/* Register callbacks for linker file load and unload events. */



CVS commit: src/external/cddl/osnet/dev/dtrace

2019-07-23 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jul 23 09:06:12 UTC 2019

Modified Files:
src/external/cddl/osnet/dev/dtrace: dtrace_load.c

Log Message:
Create "dtrace_taskq" here like FreeBSD does.

PR kern/54397: Panic when loading a DTrace module whilst DTrace is running


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/dtrace_load.c

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



CVS commit: src/external/cddl/osnet

2019-07-23 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jul 23 07:46:22 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: spa.c
src/external/cddl/osnet/dist/uts/common/sys: bitmap.h callb.h
src/external/cddl/osnet/sys/sys: cyclic.h
Removed Files:
src/external/cddl/osnet/sys/sys: bitmap.h callb.h cpupart.h

Log Message:
Move local changes to files below "external/cddl/osnet/dist/" and
remove now unneeded files from "external/cddl/osnet/sys/sys/".

- sys/sys/bitmap.h -> dist/uts/common/sys/bitmap.h
- sys/sys/callb.h -> dist/uts/common/sys/callb.h

Stop including "cpupart.h", not needed for build.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c
cvs rdiff -u -r1.1.1.2 -r1.2 \
src/external/cddl/osnet/dist/uts/common/sys/bitmap.h
cvs rdiff -u -r1.1.1.3 -r1.2 \
src/external/cddl/osnet/dist/uts/common/sys/callb.h
cvs rdiff -u -r1.3 -r0 src/external/cddl/osnet/sys/sys/bitmap.h \
src/external/cddl/osnet/sys/sys/cpupart.h
cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/sys/sys/callb.h
cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/sys/sys/cyclic.h

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



CVS commit: src/external/cddl/osnet

2019-07-23 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jul 23 07:46:22 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: spa.c
src/external/cddl/osnet/dist/uts/common/sys: bitmap.h callb.h
src/external/cddl/osnet/sys/sys: cyclic.h
Removed Files:
src/external/cddl/osnet/sys/sys: bitmap.h callb.h cpupart.h

Log Message:
Move local changes to files below "external/cddl/osnet/dist/" and
remove now unneeded files from "external/cddl/osnet/sys/sys/".

- sys/sys/bitmap.h -> dist/uts/common/sys/bitmap.h
- sys/sys/callb.h -> dist/uts/common/sys/callb.h

Stop including "cpupart.h", not needed for build.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c
cvs rdiff -u -r1.1.1.2 -r1.2 \
src/external/cddl/osnet/dist/uts/common/sys/bitmap.h
cvs rdiff -u -r1.1.1.3 -r1.2 \
src/external/cddl/osnet/dist/uts/common/sys/callb.h
cvs rdiff -u -r1.3 -r0 src/external/cddl/osnet/sys/sys/bitmap.h \
src/external/cddl/osnet/sys/sys/cpupart.h
cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/sys/sys/callb.h
cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/sys/sys/cyclic.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/spa.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c:1.9 src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c:1.10
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c:1.9	Wed May 22 08:45:32 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c	Tue Jul 23 07:46:22 2019
@@ -77,7 +77,9 @@
 
 #ifdef	_KERNEL
 #include 
+#ifndef __NetBSD__
 #include 
+#endif
 #include 
 #endif	/* _KERNEL */
 

Index: src/external/cddl/osnet/dist/uts/common/sys/bitmap.h
diff -u src/external/cddl/osnet/dist/uts/common/sys/bitmap.h:1.1.1.2 src/external/cddl/osnet/dist/uts/common/sys/bitmap.h:1.2
--- src/external/cddl/osnet/dist/uts/common/sys/bitmap.h:1.1.1.2	Mon May 28 20:53:01 2018
+++ src/external/cddl/osnet/dist/uts/common/sys/bitmap.h	Tue Jul 23 07:46:22 2019
@@ -126,6 +126,12 @@ extern "C" {
 #endif /* _LP64 */
 
 
+#ifdef __NetBSD__
+
+#include 
+
+#else /*__NetBSD__ */
+
 /*
  * BIT_ONLYONESET is a private macro not designed for bitmaps of
  * arbitrary size.  u must be an unsigned integer/long.  It returns
@@ -190,6 +196,9 @@ extern int	odd_parity(ulong_t);
 
 #endif	/* _KERNEL && !_ASM */
 
+#endif /*__NetBSD__ */
+
+
 #ifdef	__cplusplus
 }
 #endif

Index: src/external/cddl/osnet/dist/uts/common/sys/callb.h
diff -u src/external/cddl/osnet/dist/uts/common/sys/callb.h:1.1.1.3 src/external/cddl/osnet/dist/uts/common/sys/callb.h:1.2
--- src/external/cddl/osnet/dist/uts/common/sys/callb.h:1.1.1.3	Mon May 28 20:53:01 2018
+++ src/external/cddl/osnet/dist/uts/common/sys/callb.h	Tue Jul 23 07:46:22 2019
@@ -130,6 +130,17 @@ typedef struct callb_cpr {
  * Note: lockp is the lock to protect the callb_cpr_t (cp) structure
  * later on.  No lock held is needed for this initialization.
  */
+#ifdef __NetBSD__
+#define	CALLB_CPR_INIT(cp, lockp, func, name)	{			\
+		/* XXXNETBSD set thread name */\
+		bzero((caddr_t)(cp), sizeof (callb_cpr_t));		\
+		(cp)->cc_lockp = lockp;	\
+		(cp)->cc_id = callb_add(func, (void *)(cp),		\
+			CB_CL_CPR_DAEMON, name);			\
+		cv_init(&(cp)->cc_callb_cv, NULL, CV_DEFAULT, NULL);	\
+		cv_init(&(cp)->cc_stop_cv, NULL, CV_DEFAULT, NULL);	\
+	}
+#else
 #define	CALLB_CPR_INIT(cp, lockp, func, name)	{			\
 		strlcpy(curthread->td_name, (name),			\
 		sizeof(curthread->td_name));			\
@@ -140,6 +151,7 @@ typedef struct callb_cpr {
 		cv_init(&(cp)->cc_callb_cv, NULL, CV_DEFAULT, NULL);	\
 		cv_init(&(cp)->cc_stop_cv, NULL, CV_DEFAULT, NULL);	\
 	}
+#endif
 
 #ifndef __lock_lint
 #define	CALLB_CPR_ASSERT(cp)	ASSERT(MUTEX_HELD((cp)->cc_lockp));
@@ -206,6 +218,10 @@ extern boolean_t callb_generic_cpr_safe(
 extern boolean_t callb_is_stopped(kthread_id_t, caddr_t *);
 extern void	callb_lock_table(void);
 extern void	callb_unlock_table(void);
+#ifdef __NetBSD__
+extern void	callb_init(void *);
+extern void	callb_fini(void *);
+#endif
 #endif
 
 #ifdef	__cplusplus

Index: src/external/cddl/osnet/sys/sys/cyclic.h
diff -u src/external/cddl/osnet/sys/sys/cyclic.h:1.5 src/external/cddl/osnet/sys/sys/cyclic.h:1.6
--- src/external/cddl/osnet/sys/sys/cyclic.h:1.5	Mon May 28 21:05:10 2018
+++ src/external/cddl/osnet/sys/sys/cyclic.h	Tue Jul 23 07:46:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: cyclic.h,v 1.5 2018/05/28 21:05:10 chs Exp $	*/
+/*	$NetBSD: cyclic.h,v 1.6 2019/07/23 07:46:22 hannken Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -40,7 +40,9 @@ typedef	void	cpu_t;
 #ifndef _ASM
 #include 
 #include 
+#ifndef __NetBSD__
 #include 
+#endif
 #endif /* !_ASM */
 
 #define	CY_LOW_LEVEL		0



CVS commit: src/external/cddl/osnet/dist/lib/libdtrace/common

2019-07-21 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sun Jul 21 15:38:06 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/lib/libdtrace/common: dt_open.c

Log Message:
Always use "netbsd" as kernel name, dt_module_update() already takes
care to load data from the booted kernel image.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 \
src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c

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



CVS commit: src/external/cddl/osnet/dist/lib/libdtrace/common

2019-07-21 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sun Jul 21 15:38:06 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/lib/libdtrace/common: dt_open.c

Log Message:
Always use "netbsd" as kernel name, dt_module_update() already takes
care to load data from the booted kernel image.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 \
src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.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/lib/libdtrace/common/dt_open.c
diff -u src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.14 src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.15
--- src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.14	Sun Jul 21 15:37:27 2019
+++ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c	Sun Jul 21 15:38:06 2019
@@ -1367,9 +1367,13 @@ alloc:
 # endif
 	{
 	const char *p;
+# ifdef __FreeBSD__
 	char kernname[512];
 
 	p = dt_bootfile(kernname, sizeof(kernname));
+# else
+	p = "netbsd";
+# endif
 
 	/*
 	 * Format the global variables based on the kernel module name.



CVS commit: src/external/cddl/osnet/dist/lib/libdtrace/common

2019-07-21 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sun Jul 21 15:37:27 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/lib/libdtrace/common: dt_open.c

Log Message:
Try to load module "dtrace" before opening "/dev/dtrace/dtrace".

Fixes PR kern/54387: DTrace Kernel module does not autoload on first use ...


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 \
src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c

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



CVS commit: src/external/cddl/osnet/dist/lib/libdtrace/common

2019-07-21 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sun Jul 21 15:37:27 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/lib/libdtrace/common: dt_open.c

Log Message:
Try to load module "dtrace" before opening "/dev/dtrace/dtrace".

Fixes PR kern/54387: DTrace Kernel module does not autoload on first use ...


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 \
src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.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/lib/libdtrace/common/dt_open.c
diff -u src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.13 src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.14
--- src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.13	Mon May 28 21:05:05 2018
+++ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c	Sun Jul 21 15:37:27 2019
@@ -1140,6 +1140,16 @@ dt_vopen(int version, int flags, int *er
 	 */
 	dt_provmod_open(, );
 
+#ifdef __NetBSD__
+	modctl_load_t cmdargs;
+
+	cmdargs.ml_filename = "dtrace";
+	cmdargs.ml_flags = MODCTL_NO_PROP;
+	cmdargs.ml_props = NULL;
+	cmdargs.ml_propslen = 0;
+
+	(void)modctl(MODCTL_LOAD, );
+#endif
 	dtfd = open("/dev/dtrace/dtrace", O_RDWR);
 	err = errno; /* save errno from opening dtfd */
 #if defined(__FreeBSD__)



CVS commit: src/sys/kern

2019-07-18 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Thu Jul 18 09:39:40 UTC 2019

Modified Files:
src/sys/kern: vfs_lookup.c

Log Message:
Make namei() work with no root dir yet.

>From David Holland with minor tweaks from me.

Should fix PR kern/54378 (panic with TLB miss when attempting to reboot)


To generate a diff of this commit:
cvs rdiff -u -r1.211 -r1.212 src/sys/kern/vfs_lookup.c

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

Modified files:

Index: src/sys/kern/vfs_lookup.c
diff -u src/sys/kern/vfs_lookup.c:1.211 src/sys/kern/vfs_lookup.c:1.212
--- src/sys/kern/vfs_lookup.c:1.211	Sat Jul  6 14:27:38 2019
+++ src/sys/kern/vfs_lookup.c	Thu Jul 18 09:39:40 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_lookup.c,v 1.211 2019/07/06 14:27:38 maxv Exp $	*/
+/*	$NetBSD: vfs_lookup.c,v 1.212 2019/07/18 09:39:40 hannken Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1989, 1993
@@ -37,7 +37,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: vfs_lookup.c,v 1.211 2019/07/06 14:27:38 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_lookup.c,v 1.212 2019/07/18 09:39:40 hannken Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_magiclinks.h"
@@ -515,7 +515,8 @@ namei_cleanup(struct namei_state *state)
 	KASSERT(state->cnp == >ndp->ni_cnd);
 
 	if (state->root_referenced) {
-		vrele(state->ndp->ni_rootdir);
+		if (state->ndp->ni_rootdir != NULL)
+			vrele(state->ndp->ni_rootdir);
 		if (state->ndp->ni_erootdir != NULL)
 			vrele(state->ndp->ni_erootdir);
 	}
@@ -538,7 +539,8 @@ namei_getstartdir(struct namei_state *st
 	struct vnode *rootdir, *erootdir, *curdir, *startdir;
 
 	if (state->root_referenced) {
-		vrele(state->ndp->ni_rootdir);
+		if (state->ndp->ni_rootdir != NULL)
+			vrele(state->ndp->ni_rootdir);
 		if (state->ndp->ni_erootdir != NULL)
 			vrele(state->ndp->ni_erootdir);
 		state->root_referenced = 0;
@@ -595,8 +597,10 @@ namei_getstartdir(struct namei_state *st
 	 * Must hold references to rootdir and erootdir while we're running.
 	 * A multithreaded process may chroot during namei.
 	 */
-	vref(startdir);
-	vref(state->ndp->ni_rootdir);
+	if (startdir != NULL)
+		vref(startdir);
+	if (state->ndp->ni_rootdir != NULL)
+		vref(state->ndp->ni_rootdir);
 	if (state->ndp->ni_erootdir != NULL)
 		vref(state->ndp->ni_erootdir);
 	state->root_referenced = 1;
@@ -616,6 +620,9 @@ namei_getstartdir_for_nfsd(struct namei_
 	KASSERT(state->ndp->ni_atdir != NULL);
 
 	/* always use the real root, and never set an emulation root */
+	if (rootvnode == NULL) {
+		return NULL;
+	}
 	state->ndp->ni_rootdir = rootvnode;
 	state->ndp->ni_erootdir = NULL;
 
@@ -693,6 +700,10 @@ namei_start(struct namei_state *state, i
 		namei_ktrace(state);
 	}
 
+	if (startdir == NULL) {
+		return ENOENT;
+	}
+
 	/* NDAT may feed us with a non directory namei_getstartdir */
 	if (startdir->v_type != VDIR) {
 		vrele(startdir);



CVS commit: src/sys/kern

2019-07-18 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Thu Jul 18 09:39:40 UTC 2019

Modified Files:
src/sys/kern: vfs_lookup.c

Log Message:
Make namei() work with no root dir yet.

>From David Holland with minor tweaks from me.

Should fix PR kern/54378 (panic with TLB miss when attempting to reboot)


To generate a diff of this commit:
cvs rdiff -u -r1.211 -r1.212 src/sys/kern/vfs_lookup.c

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



CVS commit: src/external/cddl/osnet/dist/tools/ctf/cvt

2019-07-16 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jul 16 07:27:35 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/tools/ctf/cvt: fixup_tdescs.c

Log Message:
XXX: A crude hack to bring down the number of types for a
GENRIC kernel below 2**15-1 (from ~34000 to ~29800).

Remove the type attributes "volatile", "const" and "restrict",
for DTRACE these attributes are of little value.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c

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



CVS commit: src/external/cddl/osnet/dist/tools/ctf/cvt

2019-07-16 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jul 16 07:27:35 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/tools/ctf/cvt: fixup_tdescs.c

Log Message:
XXX: A crude hack to bring down the number of types for a
GENRIC kernel below 2**15-1 (from ~34000 to ~29800).

Remove the type attributes "volatile", "const" and "restrict",
for DTRACE these attributes are of little value.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.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/tools/ctf/cvt/fixup_tdescs.c
diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c:1.4 src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c:1.5
--- src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c:1.4	Tue Jul 16 07:26:41 2019
+++ src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c	Tue Jul 16 07:27:35 2019
@@ -41,6 +41,7 @@
 #include "ctftools.h"
 #include "hash.h"
 #include "memory.h"
+#include "traverse.h"
 
 /*
  * Due to 4432619, the 6.1 compiler will sometimes incorrectly generate pointer
@@ -320,6 +321,55 @@ fix_kmutex_private(tdata_t *td, size_t p
 	}
 }
 
+/*
+ * XXX: A crude hack to bring down the number of types for a
+ * GENRIC kernel below 2**15-1 (from ~34000 to ~29800).
+ *
+ * Remove the type attributes "volatile", "const" and "restrict",
+ * for DTRACE these attributes are of little value.
+ */
+
+static int
+fix_kill_attr_cb(tdesc_t *tdp, tdesc_t **tdpp, void *private __unused)
+{
+
+	while (tdp->t_type == VOLATILE ||
+	tdp->t_type == RESTRICT ||
+	tdp->t_type == CONST)
+		tdp = tdp->t_tdesc;
+
+	*tdpp = tdp;
+
+	return 1;
+}
+
+static tdtrav_cb_f fix_kill_attr_tab[] = {
+	NULL,
+	NULL,			/* intrinsic */
+	NULL,			/* pointer */
+	NULL,			/* reference */
+	NULL,			/* array */
+	NULL,			/* function */
+	NULL,			/* struct */
+	NULL,			/* union */
+	NULL,			/* class */
+	NULL,			/* enum */
+	NULL		,	/* forward */
+	NULL,			/* typedef */
+	NULL,			/* typedef unres */
+	fix_kill_attr_cb,	/* volatile */
+	fix_kill_attr_cb,	/* const */
+	fix_kill_attr_cb,	/* restrict */
+};
+
+static void
+fix_kill_attr(tdata_t *td, size_t ptrsize)
+{
+
+	(void) iitraverse_hash(td->td_iihash, >td_curvgen,
+	fix_kill_attr_tab, NULL, NULL, NULL);
+}
+
 #endif /* __NetBSD__ */
 
 void
@@ -328,5 +378,6 @@ cvt_fixups(tdata_t *td, size_t ptrsize)
 	fix_small_cpu_struct(td, ptrsize);
 #ifdef __NetBSD__
 	fix_kmutex_private(td, ptrsize);
+	fix_kill_attr(td, ptrsize);
 #endif
 }



CVS commit: src/external/cddl/osnet/dev/fbt

2019-07-16 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jul 16 07:26:00 UTC 2019

Modified Files:
src/external/cddl/osnet/dev/fbt: fbt.c

Log Message:
Always exclude "fbt_*" from the list of FBT probes.


To generate a diff of this commit:
cvs rdiff -u -r1.26 -r1.27 src/external/cddl/osnet/dev/fbt/fbt.c

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



CVS commit: src/external/cddl/osnet/dist/tools/ctf/cvt

2019-07-16 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jul 16 07:26:41 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/tools/ctf/cvt: fixup_tdescs.c

Log Message:
Add fixup operation to remove private mutex types for x86.

For GENERIC the number of types goes down from 47351 to 33981.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.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/tools/ctf/cvt/fixup_tdescs.c
diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c:1.3 src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c:1.4
--- src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c:1.3	Wed Feb 24 21:53:26 2010
+++ src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c	Tue Jul 16 07:26:41 2019
@@ -276,8 +276,57 @@ fix_small_cpu_struct(tdata_t *td, size_t
 	lml->ml_next = cpum;
 }
 
+#ifdef __NetBSD__
+
+/*
+ * The kmutex structure comes in two flavours, with or without __MUTEX_PRIVATE
+ * defined.  Since many structures include kmutexes this causes massive amounts
+ * of duplication on merge (~ 40% for a GENERIC kernel).  Remove the private
+ * fields if we see them.
+ */
+static void
+fix_kmutex_private(tdata_t *td, size_t ptrsize)
+{
+	tdesc_t *desc;
+	mlist_t *ml;
+
+	/*
+	 * X86 kmutex is either
+	 *	union {
+	 *		volatile uintptr_t mtxa_owner;
+	 *	} u
+	 * or
+	 *	union {
+	 *		volatile uintptr_t mtxa_owner;
+	 *		struct {
+	 *			...
+	 *		} s;
+	 *	} u
+	 * so we remove "struct s" if we find it.
+	 */
+	if ((desc = lookup_tdesc(td, "kmutex")) != NULL &&
+	desc->t_type == STRUCT &&
+	(ml = desc->t_members) != NULL &&
+	streq(ml->ml_name, "u") &&
+	(desc = ml->ml_type) != NULL &&
+	desc->t_type == UNION &&
+	(ml = desc->t_members) != NULL &&
+	streq(ml->ml_name, "mtxa_owner") &&
+	(ml = ml->ml_next) != NULL &&
+	streq(ml->ml_name, "s") &&
+	ml->ml_next == NULL) {
+		/* Found, delete member "s". */
+		desc->t_members->ml_next = NULL;
+	}
+}
+
+#endif /* __NetBSD__ */
+
 void
 cvt_fixups(tdata_t *td, size_t ptrsize)
 {
 	fix_small_cpu_struct(td, ptrsize);
+#ifdef __NetBSD__
+	fix_kmutex_private(td, ptrsize);
+#endif
 }



CVS commit: src/external/cddl/osnet/dist/tools/ctf/cvt

2019-07-16 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jul 16 07:26:41 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/tools/ctf/cvt: fixup_tdescs.c

Log Message:
Add fixup operation to remove private mutex types for x86.

For GENERIC the number of types goes down from 47351 to 33981.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c

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



CVS commit: src/external/cddl/osnet/dev/fbt

2019-07-16 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jul 16 07:26:00 UTC 2019

Modified Files:
src/external/cddl/osnet/dev/fbt: fbt.c

Log Message:
Always exclude "fbt_*" from the list of FBT probes.


To generate a diff of this commit:
cvs rdiff -u -r1.26 -r1.27 src/external/cddl/osnet/dev/fbt/fbt.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/dev/fbt/fbt.c
diff -u src/external/cddl/osnet/dev/fbt/fbt.c:1.26 src/external/cddl/osnet/dev/fbt/fbt.c:1.27
--- src/external/cddl/osnet/dev/fbt/fbt.c:1.26	Sat Mar  9 18:53:52 2019
+++ src/external/cddl/osnet/dev/fbt/fbt.c	Tue Jul 16 07:26:00 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: fbt.c,v 1.26 2019/03/09 18:53:52 kamil Exp $	*/
+/*	$NetBSD: fbt.c,v 1.27 2019/07/16 07:26:00 hannken Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -177,7 +177,8 @@ fbt_excluded(const char *name)
 	strncmp(name, "kdb_", 4) == 0 ||
 	strncmp(name, "lockdebug_", 10) == 0 ||
 	strncmp(name, "kauth_", 5) == 0 ||
-	strncmp(name, "ktext_write", 11) == 0) {
+	strncmp(name, "ktext_write", 11) == 0 ||
+	strncmp(name, "fbt_", 4) == 0) {
 		return (1);
 	}
 #endif



CVS commit: src/external/cddl/osnet/dev/dtrace/amd64

2019-07-05 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Fri Jul  5 08:29:19 UTC 2019

Modified Files:
src/external/cddl/osnet/dev/dtrace/amd64: dtrace_subr.c

Log Message:
Change dtrace toxic range to "0 .. VM_MIN_KERNEL_ADDRESS_DEFAULT",
the direct map may be mapped below "VM_MIN_KERNEL_ADDRESS".


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 \
src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.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/dev/dtrace/amd64/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.12 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.13
--- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.12	Sat Jan 12 10:41:31 2019
+++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c	Fri Jul  5 08:29:18 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_subr.c,v 1.12 2019/01/12 10:41:31 hannken Exp $	*/
+/*	$NetBSD: dtrace_subr.c,v 1.13 2019/07/05 08:29:18 hannken Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -115,7 +115,7 @@ dtrace_invop_remove(int (*func)(uintptr_
 void
 dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit))
 {
-	(*func)(0, VM_MIN_KERNEL_ADDRESS);
+	(*func)(0, VM_MIN_KERNEL_ADDRESS_DEFAULT);
 }
 
 static void



CVS commit: src/external/cddl/osnet/dev/dtrace/amd64

2019-07-05 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Fri Jul  5 08:29:19 UTC 2019

Modified Files:
src/external/cddl/osnet/dev/dtrace/amd64: dtrace_subr.c

Log Message:
Change dtrace toxic range to "0 .. VM_MIN_KERNEL_ADDRESS_DEFAULT",
the direct map may be mapped below "VM_MIN_KERNEL_ADDRESS".


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 \
src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c

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



CVS commit: src/share/mk

2019-07-05 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Fri Jul  5 08:28:16 UTC 2019

Modified Files:
src/share/mk: bsd.kmodule.mk

Log Message:
When building a module keep symbols if built with "MKCTF" and "COPTS=-g".


To generate a diff of this commit:
cvs rdiff -u -r1.61 -r1.62 src/share/mk/bsd.kmodule.mk

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

Modified files:

Index: src/share/mk/bsd.kmodule.mk
diff -u src/share/mk/bsd.kmodule.mk:1.61 src/share/mk/bsd.kmodule.mk:1.62
--- src/share/mk/bsd.kmodule.mk:1.61	Thu May  9 23:34:51 2019
+++ src/share/mk/bsd.kmodule.mk	Fri Jul  5 08:28:16 2019
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.kmodule.mk,v 1.61 2019/05/09 23:34:51 maya Exp $
+#	$NetBSD: bsd.kmodule.mk,v 1.62 2019/07/05 08:28:16 hannken Exp $
 
 # We are not building this with PIE
 MKPIE=no
@@ -11,6 +11,11 @@ CFLAGS+=	-g
 # Only need symbols for ctf, strip them after converting to CTF
 CTFFLAGS=	-L VERSION
 CTFMFLAGS=	-t -L VERSION
+# Keep symbols if built with "-g"
+.if !empty(COPTS:M*-g*)
+CTFFLAGS+=	-g
+CTFMFLAGS+=	-g
+.endif
 .endif
 
 .include 



CVS commit: src/external/cddl/osnet/dist/uts/common/dtrace

2019-07-05 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Fri Jul  5 08:28:52 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/dtrace: dtrace.c

Log Message:
Change module type to "MODULE_CLASS_MISC" to allow preloading.

Change "dtrace_nullop()" to return zero, it gets casted to "int (*)(...)".


To generate a diff of this commit:
cvs rdiff -u -r1.38 -r1.39 \
src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c

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



CVS commit: src/external/cddl/osnet/dist/uts/common/dtrace

2019-07-05 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Fri Jul  5 08:28:52 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/dtrace: dtrace.c

Log Message:
Change module type to "MODULE_CLASS_MISC" to allow preloading.

Change "dtrace_nullop()" to return zero, it gets casted to "int (*)(...)".


To generate a diff of this commit:
cvs rdiff -u -r1.38 -r1.39 \
src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.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/dtrace/dtrace.c
diff -u src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c:1.38 src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c:1.39
--- src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c:1.38	Fri Jun 29 11:33:47 2018
+++ src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c	Fri Jul  5 08:28:52 2019
@@ -395,9 +395,12 @@ static dtrace_pattr_t	dtrace_provider_at
 { DTRACE_STABILITY_STABLE, DTRACE_STABILITY_STABLE, DTRACE_CLASS_COMMON },
 };
 
-static void
+static int
 dtrace_nullop(void)
-{}
+{
+
+	return 0;
+}
 
 static dtrace_pops_t	dtrace_provider_ops = {
 	(void (*)(void *, dtrace_probedesc_t *))dtrace_nullop,
@@ -18994,5 +18997,5 @@ MODULE_DEPEND(dtrace, opensolaris, 1, 1,
 #endif /* __FreeBSD__ */
 
 #ifdef __NetBSD__
-MODULE(MODULE_CLASS_DRIVER, dtrace, "solaris");
+MODULE(MODULE_CLASS_MISC, dtrace, "solaris");
 #endif /* __NetBSD__ */



CVS commit: src/share/mk

2019-07-05 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Fri Jul  5 08:28:16 UTC 2019

Modified Files:
src/share/mk: bsd.kmodule.mk

Log Message:
When building a module keep symbols if built with "MKCTF" and "COPTS=-g".


To generate a diff of this commit:
cvs rdiff -u -r1.61 -r1.62 src/share/mk/bsd.kmodule.mk

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



CVS import: src/external/cddl/osnet/dist

2019-06-26 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed Jun 26 11:47:55 UTC 2019

Update of /cvsroot/src/external/cddl/osnet/dist
In directory ivanova.netbsd.org:/tmp/cvs-serv8829

Log Message:
import new CDDL dtrace and ZFS code from FreeBSD svn r315983

Add files missing from the initial import.

Status:

Vendor Tag: FreeBSD
Release Tags:   CDDL-FreeBSD-r315983

C src/external/cddl/osnet/dist/OPENSOLARIS.LICENSE
C src/external/cddl/osnet/dist/cmd/zdb/zdb.8
C src/external/cddl/osnet/dist/cmd/zfs/zfs.8
C src/external/cddl/osnet/dist/cmd/zpool/zpool-features.7
C src/external/cddl/osnet/dist/cmd/zpool/zpool.8
C src/external/cddl/osnet/dist/head/libintl.h
C src/external/cddl/osnet/dist/head/stdio_ext.h
C src/external/cddl/osnet/dist/head/thread.h
N src/external/cddl/osnet/dist/head/atomic.h
N src/external/cddl/osnet/dist/head/synch.h
C src/external/cddl/osnet/dist/lib/libzpool/common/sys/zfs_context.h
C src/external/cddl/osnet/dist/uts/common/Makefile.files
C src/external/cddl/osnet/dist/uts/common/os/fm.c
C src/external/cddl/osnet/dist/uts/common/os/callb.c
C src/external/cddl/osnet/dist/uts/common/sys/vnode.h
C src/external/cddl/osnet/dist/uts/common/sys/sysmacros.h
C src/external/cddl/osnet/dist/uts/common/sys/procset.h
C src/external/cddl/osnet/dist/uts/common/sys/extdirent.h
C src/external/cddl/osnet/dist/uts/common/sys/isa_defs.h
N src/external/cddl/osnet/dist/uts/common/sys/asm_linkage.h

17 conflicts created by this import.
Use the following command to help the merge:

cvs checkout -jFreeBSD:yesterday -jFreeBSD src/external/cddl/osnet/dist



CVS import: src/external/cddl/osnet/dist

2019-06-26 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed Jun 26 11:47:55 UTC 2019

Update of /cvsroot/src/external/cddl/osnet/dist
In directory ivanova.netbsd.org:/tmp/cvs-serv8829

Log Message:
import new CDDL dtrace and ZFS code from FreeBSD svn r315983

Add files missing from the initial import.

Status:

Vendor Tag: FreeBSD
Release Tags:   CDDL-FreeBSD-r315983

C src/external/cddl/osnet/dist/OPENSOLARIS.LICENSE
C src/external/cddl/osnet/dist/cmd/zdb/zdb.8
C src/external/cddl/osnet/dist/cmd/zfs/zfs.8
C src/external/cddl/osnet/dist/cmd/zpool/zpool-features.7
C src/external/cddl/osnet/dist/cmd/zpool/zpool.8
C src/external/cddl/osnet/dist/head/libintl.h
C src/external/cddl/osnet/dist/head/stdio_ext.h
C src/external/cddl/osnet/dist/head/thread.h
N src/external/cddl/osnet/dist/head/atomic.h
N src/external/cddl/osnet/dist/head/synch.h
C src/external/cddl/osnet/dist/lib/libzpool/common/sys/zfs_context.h
C src/external/cddl/osnet/dist/uts/common/Makefile.files
C src/external/cddl/osnet/dist/uts/common/os/fm.c
C src/external/cddl/osnet/dist/uts/common/os/callb.c
C src/external/cddl/osnet/dist/uts/common/sys/vnode.h
C src/external/cddl/osnet/dist/uts/common/sys/sysmacros.h
C src/external/cddl/osnet/dist/uts/common/sys/procset.h
C src/external/cddl/osnet/dist/uts/common/sys/extdirent.h
C src/external/cddl/osnet/dist/uts/common/sys/isa_defs.h
N src/external/cddl/osnet/dist/uts/common/sys/asm_linkage.h

17 conflicts created by this import.
Use the following command to help the merge:

cvs checkout -jFreeBSD:yesterday -jFreeBSD src/external/cddl/osnet/dist



CVS commit: src

2019-06-24 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Mon Jun 24 08:27:21 UTC 2019

Modified Files:
src/usr.sbin/fstyp: Makefile
Added Files:
src/external/cddl/osnet/dist: OPENSOLARIS.LICENSE
src/external/cddl/osnet/dist/cmd/zdb: zdb.8
src/external/cddl/osnet/dist/cmd/zfs: zfs.8
src/external/cddl/osnet/dist/cmd/zpool: zpool-features.7 zpool.8
src/external/cddl/osnet/dist/head: libintl.h stdio_ext.h thread.h
src/external/cddl/osnet/dist/uts/common/os: callb.c fm.c
src/external/cddl/osnet/dist/uts/common/sys: extdirent.h isa_defs.h
procset.h sysmacros.h
Removed Files:
src/external/cddl/osnet: OPENSOLARIS.LICENSE
src/external/cddl/osnet/include: libintl.h stdio_ext.h thread.h
src/external/cddl/osnet/sbin/zfs: zfs.8
src/external/cddl/osnet/sbin/zpool: zpool-features.7 zpool.8
src/external/cddl/osnet/sys/kern: callb.c fm.c
src/external/cddl/osnet/sys/sys: extdirent.h isa_defs.h procset.h
sysmacros.h
src/external/cddl/osnet/usr.sbin/zdb: zdb.8

Log Message:
Sync with upstream r315983.

Move files originating from upstream below "dist/":

  OPENSOLARIS.LICENSE -> dist/OPENSOLARIS.LICENSE
  usr.sbin/zdb/zdb.8 -> dist/cmd/zdb/zdb.8
  sbin/zfs/zfs.8 -> dist/cmd/zfs/zfs.8
  sbin/zpool/zpool-features.7 -> dist/cmd/zpool/zpool-features.7
  sbin/zpool/zpool.8 -> dist/cmd/zpool/zpool.8
  include/libintl.h -> dist/head/libintl.h
  include/stdio_ext.h -> dist/head/stdio_ext.h
  include/thread.h -> dist/head/thread.h
  sys/kern/callb.c -> dist/uts/common/os/callb.c
  sys/kern/fm.c -> dist/uts/common/os/fm.c
  sys/sys/extdirent.h -> dist/uts/common/sys/extdirent.h
  sys/sys/isa_defs.h -> dist/uts/common/sys/isa_defs.h
  sys/sys/procset.h -> dist/uts/common/sys/procset.h
  sys/sys/sysmacros.h -> dist/uts/common/sys/sysmacros.h

Adapt "usr.sbin/fstyp/Makefile".


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r0 src/external/cddl/osnet/OPENSOLARIS.LICENSE
cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/dist/OPENSOLARIS.LICENSE
cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/dist/cmd/zdb/zdb.8
cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/dist/cmd/zfs/zfs.8
cvs rdiff -u -r0 -r1.1 \
src/external/cddl/osnet/dist/cmd/zpool/zpool-features.7 \
src/external/cddl/osnet/dist/cmd/zpool/zpool.8
cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/dist/head/libintl.h \
src/external/cddl/osnet/dist/head/stdio_ext.h \
src/external/cddl/osnet/dist/head/thread.h
cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/dist/uts/common/os/callb.c \
src/external/cddl/osnet/dist/uts/common/os/fm.c
cvs rdiff -u -r0 -r1.1 \
src/external/cddl/osnet/dist/uts/common/sys/extdirent.h \
src/external/cddl/osnet/dist/uts/common/sys/isa_defs.h \
src/external/cddl/osnet/dist/uts/common/sys/procset.h \
src/external/cddl/osnet/dist/uts/common/sys/sysmacros.h
cvs rdiff -u -r1.4 -r0 src/external/cddl/osnet/include/libintl.h
cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/include/stdio_ext.h
cvs rdiff -u -r1.5 -r0 src/external/cddl/osnet/include/thread.h
cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/sbin/zfs/zfs.8
cvs rdiff -u -r1.1 -r0 src/external/cddl/osnet/sbin/zpool/zpool-features.7
cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/sbin/zpool/zpool.8
cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/sys/kern/callb.c
cvs rdiff -u -r1.3 -r0 src/external/cddl/osnet/sys/kern/fm.c
cvs rdiff -u -r1.1 -r0 src/external/cddl/osnet/sys/sys/extdirent.h
cvs rdiff -u -r1.4 -r0 src/external/cddl/osnet/sys/sys/isa_defs.h
cvs rdiff -u -r1.3 -r0 src/external/cddl/osnet/sys/sys/procset.h
cvs rdiff -u -r1.10 -r0 src/external/cddl/osnet/sys/sys/sysmacros.h
cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/usr.sbin/zdb/zdb.8
cvs rdiff -u -r1.4 -r1.5 src/usr.sbin/fstyp/Makefile

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



CVS commit: src/tools

2019-06-22 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sat Jun 22 13:42:53 UTC 2019

Modified Files:
src/tools/compat: configure configure.ac nbtool_config.h.in
src/tools/rpcgen: Makefile

Log Message:
Update tools/compat/configure for new path of "rpc/types.h".

Remove intermediate patch from rpcgen/Makefile.

Patch from Nick Hudson, errors from me.


To generate a diff of this commit:
cvs rdiff -u -r1.95 -r1.96 src/tools/compat/configure
cvs rdiff -u -r1.96 -r1.97 src/tools/compat/configure.ac
cvs rdiff -u -r1.51 -r1.52 src/tools/compat/nbtool_config.h.in
cvs rdiff -u -r1.5 -r1.6 src/tools/rpcgen/Makefile

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

Modified files:

Index: src/tools/compat/configure
diff -u src/tools/compat/configure:1.95 src/tools/compat/configure:1.96
--- src/tools/compat/configure:1.95	Wed Jun 19 23:35:55 2019
+++ src/tools/compat/configure	Sat Jun 22 13:42:53 2019
@@ -4098,8 +4098,7 @@ fi
 fi
 
 for ac_header in sys/mtio.h sys/sysmacros.h sys/syslimits.h stdio_ext.h \
-	getopt.h features.h malloc.h sys/poll.h pthread.h stddef.h rpc/types.h \
-	sys/uio.h
+	getopt.h features.h malloc.h sys/poll.h pthread.h stddef.h sys/uio.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -4129,13 +4128,33 @@ fi
 
 done
 
-for ac_header in rpc/types.h netconfig.h
+for ac_header in rpc/types.h
 do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  ac_fn_c_check_header_mongrel "$LINENO" "rpc/types.h" "ac_cv_header_rpc_types_h" "$ac_includes_default"
+if test "x$ac_cv_header_rpc_types_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_RPC_TYPES_H 1
+_ACEOF
+
+else
+  echo '#include "nbtool_config.h"' >include/$ac_header.new
+	echo '#include "'$srcdir/../../common/include/$ac_header'"' \
+		>>include/$ac_header.new
+	if cmp include/$ac_header.new include/$ac_header >/dev/null 2>&1; then
+		rm -f include/$ac_header.new
+	else
+		mv -f include/$ac_header.new include/$ac_header
+	fi
+fi
+
+done
+
+for ac_header in netconfig.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "netconfig.h" "ac_cv_header_netconfig_h" "$ac_includes_default"
+if test "x$ac_cv_header_netconfig_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_NETCONFIG_H 1
 _ACEOF
 
 else
@@ -5111,8 +5130,6 @@ else
 # ifdef _MSC_VER
 #  include 
 #  define alloca _alloca
-# elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__)
-#   include 
 # else
 #  ifdef HAVE_ALLOCA_H
 #   include 
@@ -7502,3 +7519,4 @@ if test -n "$ac_unrecognized_opts" && te
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
+

Index: src/tools/compat/configure.ac
diff -u src/tools/compat/configure.ac:1.96 src/tools/compat/configure.ac:1.97
--- src/tools/compat/configure.ac:1.96	Wed Jun 19 23:33:07 2019
+++ src/tools/compat/configure.ac	Sat Jun 22 13:42:53 2019
@@ -1,4 +1,4 @@
-#	$NetBSD: configure.ac,v 1.96 2019/06/19 23:33:07 kamil Exp $
+#	$NetBSD: configure.ac,v 1.97 2019/06/22 13:42:53 hannken Exp $
 #
 # Autoconf definition file for libnbcompat.
 #
@@ -79,13 +79,21 @@ AC_CHECK_HEADERS(sys/ioctl.h sys/mman.h 
 # Find headers that may not be available.
 AC_HEADER_DIRENT
 AC_CHECK_HEADERS(sys/mtio.h sys/sysmacros.h sys/syslimits.h stdio_ext.h \
-	getopt.h features.h malloc.h sys/poll.h pthread.h stddef.h rpc/types.h \
-	sys/uio.h)
+	getopt.h features.h malloc.h sys/poll.h pthread.h stddef.h sys/uio.h)
 AC_CHECK_HEADERS(sys/bswap.h machine/bswap.h sys/cdefs.h machine/endian.h \
 	sys/endian.h sys/featuretest.h err.h inttypes.h libgen.h paths.h \
 	libgen.h stdint.h util.h resolv.h arpa/nameser.h,,
 	[test -f include/$ac_header || touch include/$ac_header])
-AC_CHECK_HEADERS(rpc/types.h netconfig.h,,
+AC_CHECK_HEADERS(rpc/types.h,,
+	[echo '#include "nbtool_config.h"' >include/$ac_header.new
+	echo '#include "'$srcdir/../../common/include/$ac_header'"' \
+		>>include/$ac_header.new
+	if cmp include/$ac_header.new include/$ac_header >/dev/null 2>&1; then
+		rm -f include/$ac_header.new
+	else
+		mv -f include/$ac_header.new include/$ac_header
+	fi])
+AC_CHECK_HEADERS(netconfig.h,,
 	[echo '#include "nbtool_config.h"' >include/$ac_header.new
 	echo '#include "'$srcdir/../../include/$ac_header'"' \
 		>>include/$ac_header.new

Index: src/tools/compat/nbtool_config.h.in
diff -u src/tools/compat/nbtool_config.h.in:1.51 src/tools/compat/nbtool_config.h.in:1.52
--- src/tools/compat/nbtool_config.h.in:1.51	Wed Jun 19 23:35:55 2019
+++ src/tools/compat/nbtool_config.h.in	

CVS commit: src/tools

2019-06-22 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sat Jun 22 13:42:53 UTC 2019

Modified Files:
src/tools/compat: configure configure.ac nbtool_config.h.in
src/tools/rpcgen: Makefile

Log Message:
Update tools/compat/configure for new path of "rpc/types.h".

Remove intermediate patch from rpcgen/Makefile.

Patch from Nick Hudson, errors from me.


To generate a diff of this commit:
cvs rdiff -u -r1.95 -r1.96 src/tools/compat/configure
cvs rdiff -u -r1.96 -r1.97 src/tools/compat/configure.ac
cvs rdiff -u -r1.51 -r1.52 src/tools/compat/nbtool_config.h.in
cvs rdiff -u -r1.5 -r1.6 src/tools/rpcgen/Makefile

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



CVS commit: src

2019-06-22 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sat Jun 22 09:48:40 UTC 2019

Modified Files:
src/external/cddl/osnet: Makefile.zfs
src/external/cddl/osnet/dist/uts/common/fs/zfs/sys: zfs_context.h
src/usr.sbin/fstyp: Makefile
Added Files:
src/external/cddl/osnet/dist/lib/libzpool/common/sys: zfs_context.h
Removed Files:
src/external/cddl/osnet/sys/sys: zfs_context.h

Log Message:
Sync with upstream r315983.

FreeBSD splits "zfs_context.h" into:
  "lib/libzpool/common/sys/zfs_context.h" for user space
  "uts/common/fs/zfs/sys/zfs_context.h" for kernel space

Do the same here, move and sync "sys/sys/zfs_context.h" to
"dist/lib/libzpool/common/sys/zfs_context.h" and
"dist/uts/common/fs/zfs/sys/zfs_context.h".

Change "Makefile.zfs" to search includes from "dist/lib"
before "dist/uts" so we get the right include file.

Adapt "usr.sbin/fstyp/Makefile" to get the right include file.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/external/cddl/osnet/Makefile.zfs
cvs rdiff -u -r0 -r1.1 \
src/external/cddl/osnet/dist/lib/libzpool/common/sys/zfs_context.h
cvs rdiff -u -r1.1.1.3 -r1.2 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zfs_context.h
cvs rdiff -u -r1.22 -r0 src/external/cddl/osnet/sys/sys/zfs_context.h
cvs rdiff -u -r1.3 -r1.4 src/usr.sbin/fstyp/Makefile

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



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-06-21 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Fri Jun 21 10:59:50 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: dmu_tx.c

Log Message:
Disable assertion: illumos 7793 ztest fails assertion in dmu_tx_willuse_space


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.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/dmu_tx.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c:1.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c:1.4
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c:1.3	Sun Jun  3 03:05:56 2018
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c	Fri Jun 21 10:59:50 2019
@@ -1427,8 +1427,10 @@ dmu_tx_willuse_space(dmu_tx_t *tx, int64
 		return;
 
 	if (delta > 0) {
+/* FreeBSD r318821, illumos 7793 ztest fails assertion in dmu_tx_willuse_space
 		ASSERT3U(refcount_count(>tx_space_written) + delta, <=,
 		tx->tx_space_towrite);
+*/
 		(void) refcount_add_many(>tx_space_written, delta, NULL);
 	} else {
 		(void) refcount_add_many(>tx_space_freed, -delta, NULL);



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-06-21 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Fri Jun 21 10:59:50 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: dmu_tx.c

Log Message:
Disable assertion: illumos 7793 ztest fails assertion in dmu_tx_willuse_space


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

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



CVS commit: src/external/cddl/osnet

2019-06-19 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed Jun 19 08:18:01 UTC 2019

Modified Files:
src/external/cddl/osnet/include: libintl.h stdio_ext.h thread.h
src/external/cddl/osnet/sys/sys: isa_defs.h procset.h sysmacros.h

Log Message:
Sync with upstream r315983.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/include/libintl.h
cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/include/stdio_ext.h
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/include/thread.h
cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/sys/sys/isa_defs.h
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/sys/sys/procset.h
cvs rdiff -u -r1.9 -r1.10 src/external/cddl/osnet/sys/sys/sysmacros.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/include/libintl.h
diff -u src/external/cddl/osnet/include/libintl.h:1.3 src/external/cddl/osnet/include/libintl.h:1.4
--- src/external/cddl/osnet/include/libintl.h:1.3	Sun Feb 21 01:46:34 2010
+++ src/external/cddl/osnet/include/libintl.h	Wed Jun 19 08:18:01 2019
@@ -1,42 +1,107 @@
-/*	$NetBSD: libintl.h,v 1.3 2010/02/21 01:46:34 darran Exp $	*/
-
-/*-
- * Copyright (c) 2009 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Andrew Doran.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *notice, this list of conditions and the following disclaimer in the
- *documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2014 Garrett D'Amore 
+ *
+ * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
  */
 
-#ifndef	_LIBINTL_H_
-#define	_LIBINTL_H_
 
-#include 
-#include 
+#ifndef	_LIBINTL_H
+#define	_LIBINTL_H
+
+#ifdef __NetBSD__
 
 #define	textdomain(domain)	0
 #define	gettext(...)		(__VA_ARGS__)
 #define	dgettext(domain, ...)	(__VA_ARGS__)
 
-#endif	/* !_SOLARIS_H_ */
+#else /* __NetBSD__ */
+
+#include 
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+/*
+ * wchar_t is a built-in type in standard C++ and as such is not
+ * defined here when using standard C++. However, the GNU compiler
+ * fixincludes utility nonetheless creates its own version of this
+ * header for use by gcc and g++. In that version it adds a redundant
+ * guard for __cplusplus. To avoid the creation of a gcc/g++ specific
+ * header we need to include the following magic comment:
+ *
+ * we must use the C++ compiler's type
+ *
+ * The above comment should not be removed or changed until GNU
+ * gcc/fixinc/inclhack.def is updated to bypass this header.
+ */
+#if !defined(__cplusplus) || (__cplusplus < 199711L && !defined(__GNUG__))
+#ifndef _WCHAR_T
+#define	_WCHAR_T
+#if defined(_LP64)
+typedef int	wchar_t;
+#else
+typedef long	wchar_t;
+#endif
+#endif	/* !_WCHAR_T */
+#endif	/* !defined(__cplusplus) ... */
+
+#define	TEXTDOMAINMAX	256
+
+#define	

CVS commit: src/external/cddl/osnet

2019-06-19 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed Jun 19 08:18:01 UTC 2019

Modified Files:
src/external/cddl/osnet/include: libintl.h stdio_ext.h thread.h
src/external/cddl/osnet/sys/sys: isa_defs.h procset.h sysmacros.h

Log Message:
Sync with upstream r315983.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/include/libintl.h
cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/include/stdio_ext.h
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/include/thread.h
cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/sys/sys/isa_defs.h
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/sys/sys/procset.h
cvs rdiff -u -r1.9 -r1.10 src/external/cddl/osnet/sys/sys/sysmacros.h

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



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-06-17 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Mon Jun 17 08:09:57 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vfsops.c

Log Message:
Add native vfs_suspend()/vfs_resume() before and after
zfs_suspend_fs()/zfs_resume_fs() and get rid of dead "z_sa_hdl == NULL"
znodes before vfs_resume() to keep the vnode cache consistent.

Live rollback should work now.

PR port-xen/54273 ("zpool create pool xbd2" panics DOMU kernel)


To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.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_vfsops.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.23 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.24
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.23	Wed May 22 08:45:32 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c	Mon Jun 17 08:09:57 2019
@@ -121,6 +121,7 @@ VFS_SET(zfs_vfsops, zfs, VFCF_JAIL | VFC
 
 #ifdef __NetBSD__
 
+#include 
 #include 
 #include 
 
@@ -2669,8 +2670,17 @@ zfs_suspend_fs(zfsvfs_t *zfsvfs)
 {
 	int error;
 
+#ifdef __NetBSD__
+	if ((error = vfs_suspend(zfsvfs->z_vfs, 0)) != 0)
+		return error;
+	if ((error = zfsvfs_teardown(zfsvfs, B_FALSE)) != 0) {
+		vfs_resume(zfsvfs->z_vfs);
+		return (error);
+	}
+#else
 	if ((error = zfsvfs_teardown(zfsvfs, B_FALSE)) != 0)
 		return (error);
+#endif
 
 	return (0);
 }
@@ -2682,6 +2692,16 @@ zfs_suspend_fs(zfsvfs_t *zfsvfs)
  * are the same: the relevant objset and associated dataset are owned by
  * zfsvfs, held, and long held on entry.
  */
+#ifdef __NetBSD__
+static bool
+zfs_resume_selector(void *cl, struct vnode *vp)
+{
+
+	if (zfsctl_is_node(vp))
+		return false;
+	return (VTOZ(vp)->z_sa_hdl == NULL);
+}
+#endif
 int
 zfs_resume_fs(zfsvfs_t *zfsvfs, dsl_dataset_t *ds)
 {
@@ -2725,6 +2745,18 @@ bail:
 	/* release the VOPs */
 	rw_exit(>z_teardown_inactive_lock);
 	rrm_exit(>z_teardown_lock, FTAG);
+#ifdef __NetBSD__
+	struct vnode_iterator *marker;
+	vnode_t *vp;
+
+	vfs_vnode_iterator_init(zfsvfs->z_vfs, );
+	while ((vp = vfs_vnode_iterator_next(marker,
+	zfs_resume_selector, NULL))) {
+		vgone(vp);
+	}
+	vfs_vnode_iterator_destroy(marker);
+	vfs_resume(zfsvfs->z_vfs);
+#endif
 
 	if (err) {
 		/*



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-06-17 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Mon Jun 17 08:09:57 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vfsops.c

Log Message:
Add native vfs_suspend()/vfs_resume() before and after
zfs_suspend_fs()/zfs_resume_fs() and get rid of dead "z_sa_hdl == NULL"
znodes before vfs_resume() to keep the vnode cache consistent.

Live rollback should work now.

PR port-xen/54273 ("zpool create pool xbd2" panics DOMU kernel)


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

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



CVS commit: src/external/cddl/osnet

2019-06-17 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Mon Jun 17 08:08:51 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_znode.c
src/external/cddl/osnet/sys/sys: zfs_context.h

Log Message:
Unmap pages when zfs_rezget() re-establishes a znode with its dbufs.


To generate a diff of this commit:
cvs rdiff -u -r1.28 -r1.29 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c
cvs rdiff -u -r1.21 -r1.22 src/external/cddl/osnet/sys/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/zfs_znode.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.28 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.28	Sun May 26 10:21:00 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c	Mon Jun 17 08:08:50 2019
@@ -1560,10 +1560,14 @@ zfs_rezget(znode_t *zp)
 
 	zp->z_unlinked = (zp->z_links == 0);
 	zp->z_blksz = doi.doi_data_block_size;
+#ifdef __NetBSD__
+	mutex_enter(vp->v_interlock);
+	(void)VOP_PUTPAGES(vp, 0, 0, PGO_ALLPAGES|PGO_FREE|PGO_SYNCIO);
+#else
 	vn_pages_remove(vp, 0, 0);
+#endif
 	if (zp->z_size != size)
 		vnode_pager_setsize(vp, zp->z_size);
-
 	ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num);
 
 	return (0);

Index: src/external/cddl/osnet/sys/sys/zfs_context.h
diff -u src/external/cddl/osnet/sys/sys/zfs_context.h:1.21 src/external/cddl/osnet/sys/sys/zfs_context.h:1.22
--- src/external/cddl/osnet/sys/sys/zfs_context.h:1.21	Tue May  7 08:49:59 2019
+++ src/external/cddl/osnet/sys/sys/zfs_context.h	Mon Jun 17 08:08:51 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: zfs_context.h,v 1.21 2019/05/07 08:49:59 hannken Exp $	*/
+/*	$NetBSD: zfs_context.h,v 1.22 2019/06/17 08:08:51 hannken Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -777,7 +777,6 @@ vsprintf(char * __restrict buf, const ch
 
 void zfs_netbsd_setsize(vnode_t *, off_t);
 #define vnode_pager_setsize(vp, size) zfs_netbsd_setsize(vp, size)
-#define vn_pages_remove(a, b, c)
 
 #define getf		fd_getfile
 #define releasef	fd_putfile



CVS commit: src/external/cddl/osnet

2019-06-17 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Mon Jun 17 08:08:51 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_znode.c
src/external/cddl/osnet/sys/sys: zfs_context.h

Log Message:
Unmap pages when zfs_rezget() re-establishes a znode with its dbufs.


To generate a diff of this commit:
cvs rdiff -u -r1.28 -r1.29 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c
cvs rdiff -u -r1.21 -r1.22 src/external/cddl/osnet/sys/sys/zfs_context.h

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



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-06-17 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Mon Jun 17 08:08:21 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c

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


To generate a diff of this commit:
cvs rdiff -u -r1.49 -r1.50 \
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.49 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.49	Mon Jun 17 08:07:56 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Mon Jun 17 08:08:21 2019
@@ -5892,6 +5892,7 @@ zfs_netbsd_getpages(void *v)
 	kmutex_t * const mtx = uobj->vmobjlock;
 	znode_t *zp = VTOZ(vp);
 	zfsvfs_t *zfsvfs = zp->z_zfsvfs;
+	vfs_t *mp;
 	struct vm_page *pg;
 	caddr_t va;
 	int npages, found, err = 0;
@@ -5910,10 +5911,22 @@ zfs_netbsd_getpages(void *v)
 		return EBUSY;
 	}
 
+	mp = vp->v_mount;
+	fstrans_start(mp);
+	if (vp->v_mount != mp) {
+		fstrans_done(mp);
+		return ENOENT;
+	}
 	ZFS_ENTER(zfsvfs);
 	ZFS_VERIFY_ZP(zp);
 
 	mutex_enter(mtx);
+	if (offset >= vp->v_size) {
+		mutex_exit(mtx);
+		ZFS_EXIT(zfsvfs);
+		fstrans_done(mp);
+		return EINVAL;
+	}
 	npages = 1;
 	pg = NULL;
 	uvn_findpages(uobj, offset, , , UFP_ALL);
@@ -5943,6 +5956,7 @@ zfs_netbsd_getpages(void *v)
 	ap->a_m[ap->a_centeridx] = pg;
 
 	ZFS_EXIT(zfsvfs);
+	fstrans_done(mp);
 
 	return (err);
 }



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-06-17 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Mon Jun 17 08:08:21 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c

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


To generate a diff of this commit:
cvs rdiff -u -r1.49 -r1.50 \
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.



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-06-17 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Mon Jun 17 08:07:56 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c

Log Message:
Skip atime update on dead "z_sa_hdl == NULL" znodes.


To generate a diff of this commit:
cvs rdiff -u -r1.48 -r1.49 \
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.48 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.49
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.48	Mon Apr 15 12:59:38 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Mon Jun 17 08:07:56 2019
@@ -5759,7 +5759,7 @@ zfs_netbsd_reclaim(void *v)
 	/*
 	 * Process a deferred atime update.
 	 */
-	if (zp->z_atime_dirty && zp->z_unlinked == 0) {
+	if (zp->z_atime_dirty && zp->z_unlinked == 0 && zp->z_sa_hdl != NULL) {
 		dmu_tx_t *tx = dmu_tx_create(zfsvfs->z_os);
 
 		dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_FALSE);



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-06-17 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Mon Jun 17 08:07:56 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c

Log Message:
Skip atime update on dead "z_sa_hdl == NULL" znodes.


To generate a diff of this commit:
cvs rdiff -u -r1.48 -r1.49 \
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.



CVS commit: src/sys/kern

2019-06-17 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Mon Jun 17 08:07:27 UTC 2019

Modified Files:
src/sys/kern: vfs_trans.c

Log Message:
Add an owner field to fstrans mount info and use it to hold
the thread currently suspending this mount.

Remove now unneeded state FSTRANS_EXCL.

It is now possible to suspend a file system from a thread
already holding fstrans locks.  Use with care ...


To generate a diff of this commit:
cvs rdiff -u -r1.60 -r1.61 src/sys/kern/vfs_trans.c

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



CVS commit: src/sys/kern

2019-06-17 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Mon Jun 17 08:07:27 UTC 2019

Modified Files:
src/sys/kern: vfs_trans.c

Log Message:
Add an owner field to fstrans mount info and use it to hold
the thread currently suspending this mount.

Remove now unneeded state FSTRANS_EXCL.

It is now possible to suspend a file system from a thread
already holding fstrans locks.  Use with care ...


To generate a diff of this commit:
cvs rdiff -u -r1.60 -r1.61 src/sys/kern/vfs_trans.c

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

Modified files:

Index: src/sys/kern/vfs_trans.c
diff -u src/sys/kern/vfs_trans.c:1.60 src/sys/kern/vfs_trans.c:1.61
--- src/sys/kern/vfs_trans.c:1.60	Mon May 13 08:16:56 2019
+++ src/sys/kern/vfs_trans.c	Mon Jun 17 08:07:27 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_trans.c,v 1.60 2019/05/13 08:16:56 hannken Exp $	*/
+/*	$NetBSD: vfs_trans.c,v 1.61 2019/06/17 08:07:27 hannken Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: vfs_trans.c,v 1.60 2019/05/13 08:16:56 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_trans.c,v 1.61 2019/06/17 08:07:27 hannken Exp $");
 
 /*
  * File system transaction operations.
@@ -55,8 +55,7 @@ __KERNEL_RCSID(0, "$NetBSD: vfs_trans.c,
 
 enum fstrans_lock_type {
 	FSTRANS_LAZY,			/* Granted while not suspended */
-	FSTRANS_SHARED,			/* Granted while not suspending */
-	FSTRANS_EXCL			/* Internal: exclusive lock */
+	FSTRANS_SHARED			/* Granted while not suspending */
 };
 
 struct fscow_handler {
@@ -83,6 +82,7 @@ struct fstrans_mount_info {
 	bool fmi_cow_change;
 	LIST_HEAD(, fscow_handler) fmi_cow_handler;
 	struct mount *fmi_mount;
+	struct lwp *fmi_owner;
 };
 
 static kmutex_t vfs_suspend_lock;	/* Serialize suspensions. */
@@ -101,7 +101,8 @@ static inline struct fstrans_lwp_info *
 fstrans_get_lwp_info(struct mount *, bool);
 static struct fstrans_lwp_info *fstrans_alloc_lwp_info(struct mount *);
 static inline int _fstrans_start(struct mount *, enum fstrans_lock_type, int);
-static bool grant_lock(const enum fstrans_state, const enum fstrans_lock_type);
+static bool grant_lock(const struct fstrans_mount_info *,
+const enum fstrans_lock_type);
 static bool state_change_done(const struct fstrans_mount_info *);
 static bool cow_state_change_done(const struct fstrans_mount_info *);
 static void cow_change_enter(struct fstrans_mount_info *);
@@ -233,6 +234,7 @@ fstrans_mount_dtor(struct fstrans_mount_
 
 	KASSERT(fmi->fmi_state == FSTRANS_NORMAL);
 	KASSERT(LIST_FIRST(>fmi_cow_handler) == NULL);
+	KASSERT(fmi->fmi_owner == NULL);
 
 	KASSERT(fstrans_gone_count > 0);
 	fstrans_gone_count -= 1;
@@ -258,6 +260,7 @@ fstrans_mount(struct mount *mp)
 	LIST_INIT(>fmi_cow_handler);
 	newfmi->fmi_cow_change = false;
 	newfmi->fmi_mount = mp;
+	newfmi->fmi_owner = NULL;
 
 	mutex_enter(_mount_lock);
 	mp->mnt_transinfo = newfmi;
@@ -433,14 +436,15 @@ fstrans_get_lwp_info(struct mount *mp, b
  * Check if this lock type is granted at this state.
  */
 static bool
-grant_lock(const enum fstrans_state state, const enum fstrans_lock_type type)
+grant_lock(const struct fstrans_mount_info *fmi,
+const enum fstrans_lock_type type)
 {
 
-	if (__predict_true(state == FSTRANS_NORMAL))
+	if (__predict_true(fmi->fmi_state == FSTRANS_NORMAL))
 		return true;
-	if (type == FSTRANS_EXCL)
+	if (fmi->fmi_owner == curlwp)
 		return true;
-	if  (state == FSTRANS_SUSPENDING && type == FSTRANS_LAZY)
+	if  (fmi->fmi_state == FSTRANS_SUSPENDING && type == FSTRANS_LAZY)
 		return true;
 
 	return false;
@@ -468,14 +472,13 @@ _fstrans_start(struct mount *mp, enum fs
 	fmi = fli->fli_mountinfo;
 
 	if (fli->fli_trans_cnt > 0) {
-		KASSERT(lock_type != FSTRANS_EXCL);
 		fli->fli_trans_cnt += 1;
 
 		return 0;
 	}
 
 	s = pserialize_read_enter();
-	if (__predict_true(grant_lock(fmi->fmi_state, lock_type))) {
+	if (__predict_true(grant_lock(fmi, lock_type))) {
 		fli->fli_trans_cnt = 1;
 		fli->fli_lock_type = lock_type;
 		pserialize_read_exit(s);
@@ -488,7 +491,7 @@ _fstrans_start(struct mount *mp, enum fs
 		return EBUSY;
 
 	mutex_enter(_lock);
-	while (! grant_lock(fmi->fmi_state, lock_type))
+	while (! grant_lock(fmi, lock_type))
 		cv_wait(_state_cv, _lock);
 	fli->fli_trans_cnt = 1;
 	fli->fli_lock_type = lock_type;
@@ -572,15 +575,14 @@ int
 fstrans_is_owner(struct mount *mp)
 {
 	struct fstrans_lwp_info *fli;
+	struct fstrans_mount_info *fmi;
 
 	KASSERT(mp != dead_rootmount);
 
 	fli = fstrans_get_lwp_info(mp, true);
+	fmi = fli->fli_mountinfo;
 
-	if (fli->fli_trans_cnt == 0)
-		return 0;
-
-	return (fli->fli_lock_type == FSTRANS_EXCL);
+	return (fmi->fmi_owner == curlwp);
 }
 
 /*
@@ -598,7 +600,9 @@ state_change_done(const struct fstrans_m
 			continue;
 		if (fli->fli_trans_cnt == 0)
 			continue;
-		if (grant_lock(fmi->fmi_state, fli->fli_lock_type))
+		if (fli->fli_self == curlwp)
+			continue;
+		if 

CVS commit: src/tests/fs/zfs

2019-06-11 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jun 11 14:00:16 UTC 2019

Modified Files:
src/tests/fs/zfs: t_zpool.sh

Log Message:
Need rumpdev_disk for rumpfs_zfs.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/tests/fs/zfs/t_zpool.sh

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



CVS commit: src/tests/fs/zfs

2019-06-11 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jun 11 14:00:16 UTC 2019

Modified Files:
src/tests/fs/zfs: t_zpool.sh

Log Message:
Need rumpdev_disk for rumpfs_zfs.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/tests/fs/zfs/t_zpool.sh

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

Modified files:

Index: src/tests/fs/zfs/t_zpool.sh
diff -u src/tests/fs/zfs/t_zpool.sh:1.4 src/tests/fs/zfs/t_zpool.sh:1.5
--- src/tests/fs/zfs/t_zpool.sh:1.4	Sun Dec 16 14:04:14 2018
+++ src/tests/fs/zfs/t_zpool.sh	Tue Jun 11 14:00:16 2019
@@ -1,4 +1,4 @@
-#	$NetBSD: t_zpool.sh,v 1.4 2018/12/16 14:04:14 hannken Exp $
+#	$NetBSD: t_zpool.sh,v 1.5 2019/06/11 14:00:16 hannken Exp $
 #
 # Copyright (c) 2011 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -25,7 +25,7 @@
 # POSSIBILITY OF SUCH DAMAGE.
 #
 
-server='rump_server -lrumpvfs -lrumpkern_solaris -lrumpfs_zfs -lrumpdev -lrumpdev_rnd -d key=/dk,hostpath=zfs.img,size=100m'
+server='rump_server -lrumpvfs -lrumpdev_disk -lrumpkern_solaris -lrumpfs_zfs -lrumpdev -lrumpdev_rnd -d key=/dk,hostpath=zfs.img,size=100m'
 
 export RUMP_SERVER=unix://zsuck
 



CVS commit: src/external/cddl/osnet/sys/kern

2019-06-11 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jun 11 09:05:33 UTC 2019

Modified Files:
src/external/cddl/osnet/sys/kern: taskq.c

Log Message:
There is no 1:1 relation between cv_signal() and cv_timedwait() as
the latter implicitly calls cv_signal() on error.

This leads to "tq_waiting > 0" with "tq_running == 0" and the
taskq stalls.

Change task_executor() to increment and decrement "tq_waiting"
and always check and run the queue after cv_timedwait().

Use mstohz(), fix timeout and sort includes.

Addresses PR port-xen/54273: "zpool create pool xbd2" panics DOMU kernel


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/external/cddl/osnet/sys/kern/taskq.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/sys/kern/taskq.c
diff -u src/external/cddl/osnet/sys/kern/taskq.c:1.9 src/external/cddl/osnet/sys/kern/taskq.c:1.10
--- src/external/cddl/osnet/sys/kern/taskq.c:1.9	Tue May  7 08:49:59 2019
+++ src/external/cddl/osnet/sys/kern/taskq.c	Tue Jun 11 09:05:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: taskq.c,v 1.9 2019/05/07 08:49:59 hannken Exp $	*/
+/*	$NetBSD: taskq.c,v 1.10 2019/06/11 09:05:33 hannken Exp $	*/
 
 /*-
  * Copyright (c) 2019 The NetBSD Foundation, Inc.
@@ -30,9 +30,11 @@
  */
 
 #include 
-#include 
+#include 
 #include 
+#include 
 #include 
+#include 
 #include 
 #include 
 
@@ -65,7 +67,7 @@ static specificdata_key_t taskq_lwp_key;
 
 /*
  * Threadpool job to service tasks from task queue.
- * Runs until the task queue gets destroyed or the queue is empty for 5 secs.
+ * Runs until the task queue gets destroyed or the queue is empty for 10 secs.
  */
 static void
 task_executor(struct threadpool_job *job)
@@ -73,22 +75,27 @@ task_executor(struct threadpool_job *job
 	struct taskq_executor *state = (struct taskq_executor *)job;
 	taskq_t *tq = state->te_self;
 	taskq_ent_t *tqe; 
+	int error;
 
 	lwp_setspecific(taskq_lwp_key, tq);
 
 	mutex_enter(>tq_lock);
 	while (!tq->tq_destroyed) {
-		tqe = SIMPLEQ_FIRST(>tq_list);
-		if (tqe == NULL) {
+		if (SIMPLEQ_EMPTY(>tq_list)) {
 			if (ISSET(tq->tq_flags, TASKQ_DYNAMIC))
 break;
 			tq->tq_waiting++;
-			if (cv_timedwait(>tq_cv, >tq_lock, 5000) != 0) {
-tq->tq_waiting--;
-break;
+			error = cv_timedwait(>tq_cv, >tq_lock,
+			mstohz(1));
+			tq->tq_waiting--;
+			if (SIMPLEQ_EMPTY(>tq_list)) {
+if (error)
+	break;
+continue;
 			}
-			continue;
 		}
+		tqe = SIMPLEQ_FIRST(>tq_list);
+		KASSERT(tqe != NULL);
 		SIMPLEQ_REMOVE_HEAD(>tq_list, tqent_list);
 		tqe->tqent_queued = 0;
 		mutex_exit(>tq_lock);
@@ -144,7 +151,6 @@ taskq_dispatch_common(taskq_t *tq, taskq
 	tq->tq_active++;
 	if (tq->tq_waiting) {
 		cv_signal(>tq_cv);
-		tq->tq_waiting--;
 		mutex_exit(>tq_lock);
 		return;
 	}



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-06-11 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jun 11 09:04:37 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: vdev_disk.c
src/external/cddl/osnet/dist/uts/common/fs/zfs/sys: vdev_disk.h

Log Message:
Try to retrieve the per-disk maximum transfer size and use it instead
of MAXPHYS.  Eagerly waiting for the merge of tls-maxphys.

Addresses PR port-xen/54273: "zpool create pool xbd2" panics DOMU kernel


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c
cvs rdiff -u -r1.3 -r1.4 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h

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



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-06-11 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jun 11 09:04:37 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: vdev_disk.c
src/external/cddl/osnet/dist/uts/common/fs/zfs/sys: vdev_disk.h

Log Message:
Try to retrieve the per-disk maximum transfer size and use it instead
of MAXPHYS.  Eagerly waiting for the merge of tls-maxphys.

Addresses PR port-xen/54273: "zpool create pool xbd2" panics DOMU kernel


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c
cvs rdiff -u -r1.3 -r1.4 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.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/vdev_disk.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.9 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.10
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.9	Sun May 26 10:22:59 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c	Tue Jun 11 09:04:37 2019
@@ -219,6 +219,27 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi
 		return (SET_ERROR(EINVAL));
 	}
 
+	/* XXXNETBSD Once tls-maxphys gets merged this block becomes:
+		pdk = disk_find_blk(vp->v_rdev);
+		dvd->vd_maxphys = (pdk ? disk_maxphys(pdk) : MACHINE_MAXPHYS);
+	*/
+	{
+		struct buf buf = { b_bcount: MAXPHYS };
+		const char *dev_name;
+
+		dev_name = devsw_blk2name(major(vp->v_rdev));
+		if (dev_name) {
+			char disk_name[16];
+
+			snprintf(disk_name, sizeof(disk_name), "%s%d",
+			dev_name, DISKUNIT(vp->v_rdev));
+			pdk = disk_find(disk_name);
+			if (pdk && pdk->dk_driver && pdk->dk_driver->d_minphys)
+(*pdk->dk_driver->d_minphys)();
+		}
+		dvd->vd_maxphys = buf.b_bcount;
+	}
+
 	/*
 	 * XXXNETBSD Compare the devid to the stored value.
 	 */
@@ -421,6 +442,7 @@ vdev_disk_io_start(zio_t *zio)
 		zio_interrupt(zio);
 		return;
 	}
+	ASSERT3U(dvd->vd_maxphys, >, 0);
 	vp = dvd->vd_vp;
 #endif
 
@@ -473,7 +495,7 @@ vdev_disk_io_start(zio_t *zio)
 		mutex_exit(vp->v_interlock);
 	}
 
-	if (bp->b_bcount <= MAXPHYS) {
+	if (bp->b_bcount <= dvd->vd_maxphys) {
 		/* We can do this I/O in one pass. */
 		(void)VOP_STRATEGY(vp, bp);
 	} else {
@@ -484,7 +506,7 @@ vdev_disk_io_start(zio_t *zio)
 		resid = zio->io_size;
 		off = 0;
 		while (resid != 0) {
-			size = uimin(resid, MAXPHYS);
+			size = uimin(resid, dvd->vd_maxphys);
 			nbp = getiobuf(vp, true);
 			nbp->b_blkno = btodb(zio->io_offset + off);
 			/* Below call increments v_numoutput. */

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h:1.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h:1.4
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h:1.3	Mon May 28 21:05:07 2018
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h	Tue Jun 11 09:04:37 2019
@@ -52,6 +52,7 @@ typedef struct vdev_disk {
 	char*vd_minor;
 	vnode_t *vd_vp;
 	struct workqueue *vd_wq;
+	int		vd_maxphys;
 #endif
 } vdev_disk_t;
 #endif



CVS commit: src/external/cddl/osnet/sys/kern

2019-06-07 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Fri Jun  7 10:31:21 UTC 2019

Modified Files:
src/external/cddl/osnet/sys/kern: callb.c fm.c

Log Message:
Sync with upstream r315983.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/sys/kern/callb.c
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/sys/kern/fm.c

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



CVS commit: src/external/cddl/osnet/sys/kern

2019-06-07 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Fri Jun  7 10:31:21 UTC 2019

Modified Files:
src/external/cddl/osnet/sys/kern: callb.c fm.c

Log Message:
Sync with upstream r315983.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/sys/kern/callb.c
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/sys/kern/fm.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/sys/kern/callb.c
diff -u src/external/cddl/osnet/sys/kern/callb.c:1.1 src/external/cddl/osnet/sys/kern/callb.c:1.2
--- src/external/cddl/osnet/sys/kern/callb.c:1.1	Fri Aug  7 20:57:57 2009
+++ src/external/cddl/osnet/sys/kern/callb.c	Fri Jun  7 10:31:21 2019
@@ -1,12 +1,9 @@
-/*	$NetBSD: callb.c,v 1.1 2009/08/07 20:57:57 haad Exp $	*/
-
 /*
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
  *
  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  * or http://www.opensolaris.org/os/licensing.
@@ -22,12 +19,10 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #include 
 #include 
 #include 
@@ -111,14 +106,24 @@ void
 callb_fini(void *dummy __unused)
 {
 	callb_t *cp;
+	int i;
 
 	mutex_enter(>ct_lock);
-	while ((cp = ct->ct_freelist) != NULL) {
-		ct->ct_freelist = cp->c_next;
-		ct->ct_ncallb--;
-		kmem_free(cp, sizeof (callb_t));
+	for (i = 0; i < 16; i++) {
+		while ((cp = ct->ct_freelist) != NULL) {
+			ct->ct_freelist = cp->c_next;
+			ct->ct_ncallb--;
+			kmem_free(cp, sizeof (callb_t));
+		}
+		if (ct->ct_ncallb == 0)
+			break;
+		/* Not all callbacks finished, waiting for the rest. */
+		mutex_exit(>ct_lock);
+		tsleep(ct, 0, "callb", hz / 4);
+		mutex_enter(>ct_lock);
 	}
-	ASSERT(ct->ct_ncallb == 0);
+	if (ct->ct_ncallb > 0)
+		printf("%s: Leaked %d callbacks!\n", __func__, ct->ct_ncallb);
 	mutex_exit(>ct_lock);
 	mutex_destroy(_safe_mutex);
 	mutex_destroy(_table.ct_lock);
@@ -270,7 +275,7 @@ callb_execute_class(int class, int code)
 
 #ifdef CALLB_DEBUG
 		printf("callb_execute: name=%s func=%p arg=%p\n",
-			cp->c_name, (void *)cp->c_func, (void *)cp->c_arg);
+		cp->c_name, (void *)cp->c_func, (void *)cp->c_arg);
 #endif /* CALLB_DEBUG */
 
 		mutex_exit(>ct_lock);
@@ -309,12 +314,14 @@ callb_generic_cpr(void *arg, int code)
 	switch (code) {
 	case CB_CODE_CPR_CHKPT:
 		cp->cc_events |= CALLB_CPR_START;
+#ifdef CPR_NOT_THREAD_SAFE
 		while (!(cp->cc_events & CALLB_CPR_SAFE))
 			/* cv_timedwait() returns -1 if it times out. */
-			if ((ret = cv_timedwait(>cc_callb_cv,
-			cp->cc_lockp,
-			callb_timeout_sec * hz)) == -1)
+			if ((ret = cv_reltimedwait(>cc_callb_cv,
+			cp->cc_lockp, (callb_timeout_sec * hz),
+			TR_CLOCK_TICK)) == -1)
 break;
+#endif
 		break;
 
 	case CB_CODE_CPR_RESUME:
@@ -360,3 +367,74 @@ callb_unlock_table(void)
 	cv_broadcast(>ct_busy_cv);
 	mutex_exit(>ct_lock);
 }
+
+#ifdef illumos
+/*
+ * Return a boolean value indicating whether a particular kernel thread is
+ * stopped in accordance with the cpr callback protocol.  If returning
+ * false, also return a pointer to the thread name via the 2nd argument.
+ */
+boolean_t
+callb_is_stopped(kthread_id_t tp, caddr_t *thread_name)
+{
+	callb_t *cp;
+	boolean_t ret_val;
+
+	mutex_enter(>ct_lock);
+
+	for (cp = ct->ct_first_cb[CB_CL_CPR_DAEMON];
+	cp != NULL && tp != cp->c_thread; cp = cp->c_next)
+		;
+
+	ret_val = (cp != NULL);
+	if (ret_val) {
+		/*
+		 * We found the thread in the callback table and have
+		 * provisionally set the return value to true.  Now
+		 * see if it is marked "safe" and is sleeping or stopped.
+		 */
+		callb_cpr_t *ccp = (callb_cpr_t *)cp->c_arg;
+
+		*thread_name = cp->c_name;	/* in case not stopped */
+		mutex_enter(ccp->cc_lockp);
+
+		if (ccp->cc_events & CALLB_CPR_SAFE) {
+			int retry;
+
+			mutex_exit(ccp->cc_lockp);
+			for (retry = 0; retry < CALLB_MAX_RETRY; retry++) {
+thread_lock(tp);
+if (tp->t_state & (TS_SLEEP | TS_STOPPED)) {
+	thread_unlock(tp);
+	break;
+}
+thread_unlock(tp);
+delay(CALLB_THREAD_DELAY);
+			}
+			ret_val = retry < CALLB_MAX_RETRY;
+		} else {
+			ret_val =
+			(ccp->cc_events & CALLB_CPR_ALWAYS_SAFE) != 0;
+			mutex_exit(ccp->cc_lockp);
+		}
+	} else {
+		/*
+		 * Thread not found in callback table.  Make the best
+		 * attempt to identify the thread in the error message.
+		 */
+		ulong_t offset;
+		char *sym = 

CVS commit: src/external/cddl/osnet/dist/cmd/stat/common

2019-06-06 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Thu Jun  6 15:59:23 UTC 2019

Removed Files:
src/external/cddl/osnet/dist/cmd/stat/common: timestamp.c

Log Message:
Remove "dist/cmd/stat" containing only one left over and unneeded file.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r0 \
src/external/cddl/osnet/dist/cmd/stat/common/timestamp.c

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



CVS commit: src/external/cddl/osnet/dist/cmd/stat/common

2019-06-06 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Thu Jun  6 15:59:23 UTC 2019

Removed Files:
src/external/cddl/osnet/dist/cmd/stat/common: timestamp.c

Log Message:
Remove "dist/cmd/stat" containing only one left over and unneeded file.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r0 \
src/external/cddl/osnet/dist/cmd/stat/common/timestamp.c

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



CVS commit: src/external/cddl/osnet

2019-06-06 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Thu Jun  6 14:58:51 UTC 2019

Added Files:
src/external/cddl/osnet/sys: libshare.h
src/external/cddl/osnet/sys/sys: systeminfo.h
Removed Files:
src/external/cddl/osnet/dist/lib/libshare/common: libshare.h
src/external/cddl/osnet/dist/uts/common/sys: systeminfo.h taskq_impl.h

Log Message:
Handle files not present upstream:

dist/lib/libshare/common/libshare.h -> sys/libshare.h
dist/uts/common/sys/systeminfo.h-> sys/sys/systeminfo.h
dist/uts/common/sys/taskq_impl.h-> TRASH

No functional change intended.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.3 -r0 \
src/external/cddl/osnet/dist/lib/libshare/common/libshare.h
cvs rdiff -u -r1.1.1.3 -r0 \
src/external/cddl/osnet/dist/uts/common/sys/systeminfo.h \
src/external/cddl/osnet/dist/uts/common/sys/taskq_impl.h
cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/sys/libshare.h
cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/sys/sys/systeminfo.h

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

Added files:

Index: src/external/cddl/osnet/sys/libshare.h
diff -u /dev/null src/external/cddl/osnet/sys/libshare.h:1.1
--- /dev/null	Thu Jun  6 14:58:51 2019
+++ src/external/cddl/osnet/sys/libshare.h	Thu Jun  6 14:58:50 2019
@@ -0,0 +1,36 @@
+/*-
+ * Copyright (c) 2007 Pawel Jakub Dawidek 
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef _OPENSOLARIS_LIBSHARE_H_
+#define _OPENSOLARIS_LIBSHARE_H_
+
+#define	SA_OK	0
+
+#define	SA_INIT_CONTROL_API	0
+
+#endif	/* !_OPENSOLARIS_LIBSHARE_H_ */

Index: src/external/cddl/osnet/sys/sys/systeminfo.h
diff -u /dev/null src/external/cddl/osnet/sys/sys/systeminfo.h:1.1
--- /dev/null	Thu Jun  6 14:58:51 2019
+++ src/external/cddl/osnet/sys/sys/systeminfo.h	Thu Jun  6 14:58:51 2019
@@ -0,0 +1,6 @@
+#ifndef _SYS_SYSTEMINFO_H_
+#define	_SYS_SYSTEMINFO_H_
+
+#define	HW_HOSTID_LEN	11
+
+#endif	/* !_SYS_SYSTEMINFO_H_ */



CVS commit: src/external/cddl/osnet

2019-06-06 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Thu Jun  6 14:58:51 UTC 2019

Added Files:
src/external/cddl/osnet/sys: libshare.h
src/external/cddl/osnet/sys/sys: systeminfo.h
Removed Files:
src/external/cddl/osnet/dist/lib/libshare/common: libshare.h
src/external/cddl/osnet/dist/uts/common/sys: systeminfo.h taskq_impl.h

Log Message:
Handle files not present upstream:

dist/lib/libshare/common/libshare.h -> sys/libshare.h
dist/uts/common/sys/systeminfo.h-> sys/sys/systeminfo.h
dist/uts/common/sys/taskq_impl.h-> TRASH

No functional change intended.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.3 -r0 \
src/external/cddl/osnet/dist/lib/libshare/common/libshare.h
cvs rdiff -u -r1.1.1.3 -r0 \
src/external/cddl/osnet/dist/uts/common/sys/systeminfo.h \
src/external/cddl/osnet/dist/uts/common/sys/taskq_impl.h
cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/sys/libshare.h
cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/sys/sys/systeminfo.h

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



CVS commit: src

2019-06-05 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed Jun  5 16:28:07 UTC 2019

Modified Files:
src/sys/modules/solaris: Makefile.solmod
Removed Files:
src/external/cddl/osnet/dist/uts/common/rpc: types.h xdr.c xdr.h
xdr_array.c xdr_mem.c

Log Message:
Switch module solaris to native XDR.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r0 src/external/cddl/osnet/dist/uts/common/rpc/types.h
cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/dist/uts/common/rpc/xdr.c \
src/external/cddl/osnet/dist/uts/common/rpc/xdr_mem.c
cvs rdiff -u -r1.5 -r0 src/external/cddl/osnet/dist/uts/common/rpc/xdr.h
cvs rdiff -u -r1.1.1.1 -r0 \
src/external/cddl/osnet/dist/uts/common/rpc/xdr_array.c
cvs rdiff -u -r1.6 -r1.7 src/sys/modules/solaris/Makefile.solmod

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



CVS commit: src

2019-06-05 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed Jun  5 16:28:07 UTC 2019

Modified Files:
src/sys/modules/solaris: Makefile.solmod
Removed Files:
src/external/cddl/osnet/dist/uts/common/rpc: types.h xdr.c xdr.h
xdr_array.c xdr_mem.c

Log Message:
Switch module solaris to native XDR.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r0 src/external/cddl/osnet/dist/uts/common/rpc/types.h
cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/dist/uts/common/rpc/xdr.c \
src/external/cddl/osnet/dist/uts/common/rpc/xdr_mem.c
cvs rdiff -u -r1.5 -r0 src/external/cddl/osnet/dist/uts/common/rpc/xdr.h
cvs rdiff -u -r1.1.1.1 -r0 \
src/external/cddl/osnet/dist/uts/common/rpc/xdr_array.c
cvs rdiff -u -r1.6 -r1.7 src/sys/modules/solaris/Makefile.solmod

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

Modified files:

Index: src/sys/modules/solaris/Makefile.solmod
diff -u src/sys/modules/solaris/Makefile.solmod:1.6 src/sys/modules/solaris/Makefile.solmod:1.7
--- src/sys/modules/solaris/Makefile.solmod:1.6	Sun Feb 17 04:05:58 2019
+++ src/sys/modules/solaris/Makefile.solmod	Wed Jun  5 16:28:07 2019
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.solmod,v 1.6 2019/02/17 04:05:58 rin Exp $
+#	$NetBSD: Makefile.solmod,v 1.7 2019/06/05 16:28:07 hannken Exp $
 
 ZFSDIR=	${S}/../external/cddl/osnet
 
@@ -22,7 +22,7 @@ SRCS+=	fm.c
 SRCS+=	list.c
 SRCS+=	nvpair_alloc_system.c
 
-.PATH:	${ZFSDIR}/dist/uts/common/rpc
+.PATH:	${NETBSDSRCDIR}/common/lib/libc/rpc
 
 SRCS+=	xdr.c
 SRCS+=	xdr_array.c



CVS commit: src/common

2019-06-05 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed Jun  5 16:25:43 UTC 2019

Modified Files:
src/common/include/rpc: types.h
src/common/lib/libc/rpc: xdr.c xdr_array.c xdr_mem.c

Log Message:
Make XDR usable from kernel or module.

No user visible changes intended.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/common/include/rpc/types.h
cvs rdiff -u -r1.1 -r1.2 src/common/lib/libc/rpc/xdr.c \
src/common/lib/libc/rpc/xdr_array.c src/common/lib/libc/rpc/xdr_mem.c

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

Modified files:

Index: src/common/include/rpc/types.h
diff -u src/common/include/rpc/types.h:1.1 src/common/include/rpc/types.h:1.2
--- src/common/include/rpc/types.h:1.1	Tue Jun  4 15:07:55 2019
+++ src/common/include/rpc/types.h	Wed Jun  5 16:25:43 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: types.h,v 1.1 2019/06/04 15:07:55 hannken Exp $	*/
+/*	$NetBSD: types.h,v 1.2 2019/06/05 16:25:43 hannken Exp $	*/
 
 /*
  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
@@ -62,6 +62,19 @@ typedef   int32_t rpc_inline_t;
 #	define NULL	0
 #endif
 
+#if defined(_KERNEL) || defined(_STANDALONE)
+
+#define warn(msg,...) /**/
+
+typedef __caddr_t caddr_t;
+
+#include 
+
+#define mem_alloc(bsize)	kmem_alloc(bsize, KM_SLEEP)
+#define mem_free(ptr, bsize)	kmem_free(ptr, bsize)
+
+#else /* _KERNEL || _STANDALONE */
+
 #define mem_alloc(bsize)	calloc((size_t)1, bsize)
 #define mem_free(ptr, bsize)	free(ptr)
 
@@ -104,4 +117,6 @@ struct __rpc_sockinfo {
 	int si_alen;
 };
 
+#endif /* _KERNEL || _STANDALONE */
+
 #endif /* !_RPC_TYPES_H_ */

Index: src/common/lib/libc/rpc/xdr.c
diff -u src/common/lib/libc/rpc/xdr.c:1.1 src/common/lib/libc/rpc/xdr.c:1.2
--- src/common/lib/libc/rpc/xdr.c:1.1	Tue Jun  4 15:07:55 2019
+++ src/common/lib/libc/rpc/xdr.c	Wed Jun  5 16:25:43 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: xdr.c,v 1.1 2019/06/04 15:07:55 hannken Exp $	*/
+/*	$NetBSD: xdr.c,v 1.2 2019/06/05 16:25:43 hannken Exp $	*/
 
 /*
  * Copyright (c) 2010, Oracle America, Inc.
@@ -37,7 +37,7 @@
 static char *sccsid = "@(#)xdr.c 1.35 87/08/12";
 static char *sccsid = "@(#)xdr.c	2.1 88/07/29 4.0 RPCSRC";
 #else
-__RCSID("$NetBSD: xdr.c,v 1.1 2019/06/04 15:07:55 hannken Exp $");
+__RCSID("$NetBSD: xdr.c,v 1.2 2019/06/05 16:25:43 hannken Exp $");
 #endif
 #endif
 
@@ -51,6 +51,14 @@ __RCSID("$NetBSD: xdr.c,v 1.1 2019/06/04
  * xdr.
  */
 
+#if defined(_KERNEL) || defined(_STANDALONE)
+
+#include 
+#include 
+#include 
+
+#else /* _KERNEL || _STANDALONE */
+
 #include "namespace.h"
 
 #include 
@@ -95,6 +103,8 @@ __weak_alias(xdr_void,_xdr_void)
 __weak_alias(xdr_wrapstring,_xdr_wrapstring)
 #endif
 
+#endif /* _KERNEL || _STANDALONE */
+
 /*
  * constants specific to the xdr "protocol"
  */
@@ -633,7 +643,7 @@ xdr_bytes(XDR *xdrs, char **cpp, u_int *
 		ret = xdr_opaque(xdrs, sp, nodesize);
 		if ((xdrs->x_op == XDR_DECODE) && (ret == FALSE)) {
 			if (allocated == TRUE) {
-free(sp);
+mem_free(sp, nodesize);
 *cpp = NULL;
 			}
 		}
@@ -793,7 +803,7 @@ xdr_string(XDR *xdrs, char **cpp, u_int 
 		ret = xdr_opaque(xdrs, sp, size);
 		if ((xdrs->x_op == XDR_DECODE) && (ret == FALSE)) {
 			if (allocated == TRUE) {
-free(sp);
+mem_free(sp, nodesize);
 *cpp = NULL;
 			}
 		}
@@ -808,6 +818,8 @@ xdr_string(XDR *xdrs, char **cpp, u_int 
 	return (FALSE);
 }
 
+#if !defined(_KERNEL) && !defined(_STANDALONE)
+
 /* 
  * Wrapper for xdr_string that can be called directly from 
  * routines like clnt_call
@@ -822,6 +834,8 @@ xdr_wrapstring(XDR *xdrs, char **cpp)
 	return xdr_string(xdrs, cpp, RPC_MAXDATASIZE);
 }
 
+#endif /* !_KERNEL && !_STANDALONE */
+
 /*
  * NOTE: xdr_hyper(), xdr_u_hyper(), xdr_longlong_t(), and xdr_u_longlong_t()
  * are in the "non-portable" section because they require that a `long long'
Index: src/common/lib/libc/rpc/xdr_array.c
diff -u src/common/lib/libc/rpc/xdr_array.c:1.1 src/common/lib/libc/rpc/xdr_array.c:1.2
--- src/common/lib/libc/rpc/xdr_array.c:1.1	Tue Jun  4 15:07:55 2019
+++ src/common/lib/libc/rpc/xdr_array.c	Wed Jun  5 16:25:43 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: xdr_array.c,v 1.1 2019/06/04 15:07:55 hannken Exp $	*/
+/*	$NetBSD: xdr_array.c,v 1.2 2019/06/05 16:25:43 hannken Exp $	*/
 
 /*
  * Copyright (c) 2010, Oracle America, Inc.
@@ -37,7 +37,7 @@
 static char *sccsid = "@(#)xdr_array.c 1.10 87/08/11 Copyr 1984 Sun Micro";
 static char *sccsid = "@(#)xdr_array.c	2.1 88/07/29 4.0 RPCSRC";
 #else
-__RCSID("$NetBSD: xdr_array.c,v 1.1 2019/06/04 15:07:55 hannken Exp $");
+__RCSID("$NetBSD: xdr_array.c,v 1.2 2019/06/05 16:25:43 hannken Exp $");
 #endif
 #endif
 
@@ -50,6 +50,15 @@ __RCSID("$NetBSD: xdr_array.c,v 1.1 2019
  * arrays.  See xdr.h for more info on the interface to xdr.
  */
 
+#if defined(_KERNEL) || defined(_STANDALONE)
+
+#include 
+#include 
+#include 
+#include 
+
+#else /* _KERNEL || _STANDALONE */
+
 #include "namespace.h"
 
 #include 
@@ -66,6 

CVS commit: src/common

2019-06-05 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed Jun  5 16:25:43 UTC 2019

Modified Files:
src/common/include/rpc: types.h
src/common/lib/libc/rpc: xdr.c xdr_array.c xdr_mem.c

Log Message:
Make XDR usable from kernel or module.

No user visible changes intended.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/common/include/rpc/types.h
cvs rdiff -u -r1.1 -r1.2 src/common/lib/libc/rpc/xdr.c \
src/common/lib/libc/rpc/xdr_array.c src/common/lib/libc/rpc/xdr_mem.c

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



CVS commit: src

2019-06-04 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jun  4 15:07:55 UTC 2019

Modified Files:
src/common/lib/libc: Makefile.inc
src/include: Makefile
src/include/rpc: Makefile
Added Files:
src/common/include/rpc: Makefile types.h xdr.h
src/common/lib/libc/rpc: xdr.c xdr_array.c xdr_mem.c
Removed Files:
src/include/rpc: types.h xdr.h
src/lib/libc/rpc: xdr.c xdr_array.c xdr_mem.c

Log Message:
Move the basic part of XDR to common/include/rpc and common/lib/libc/rpc.

No functional change intended.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/common/include/rpc/Makefile \
src/common/include/rpc/types.h src/common/include/rpc/xdr.h
cvs rdiff -u -r1.18 -r1.19 src/common/lib/libc/Makefile.inc
cvs rdiff -u -r0 -r1.1 src/common/lib/libc/rpc/xdr.c \
src/common/lib/libc/rpc/xdr_array.c src/common/lib/libc/rpc/xdr_mem.c
cvs rdiff -u -r1.145 -r1.146 src/include/Makefile
cvs rdiff -u -r1.12 -r1.13 src/include/rpc/Makefile
cvs rdiff -u -r1.15 -r0 src/include/rpc/types.h
cvs rdiff -u -r1.31 -r0 src/include/rpc/xdr.h
cvs rdiff -u -r1.34 -r0 src/lib/libc/rpc/xdr.c
cvs rdiff -u -r1.19 -r0 src/lib/libc/rpc/xdr_array.c
cvs rdiff -u -r1.20 -r0 src/lib/libc/rpc/xdr_mem.c

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



CVS commit: src

2019-06-04 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jun  4 15:07:55 UTC 2019

Modified Files:
src/common/lib/libc: Makefile.inc
src/include: Makefile
src/include/rpc: Makefile
Added Files:
src/common/include/rpc: Makefile types.h xdr.h
src/common/lib/libc/rpc: xdr.c xdr_array.c xdr_mem.c
Removed Files:
src/include/rpc: types.h xdr.h
src/lib/libc/rpc: xdr.c xdr_array.c xdr_mem.c

Log Message:
Move the basic part of XDR to common/include/rpc and common/lib/libc/rpc.

No functional change intended.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/common/include/rpc/Makefile \
src/common/include/rpc/types.h src/common/include/rpc/xdr.h
cvs rdiff -u -r1.18 -r1.19 src/common/lib/libc/Makefile.inc
cvs rdiff -u -r0 -r1.1 src/common/lib/libc/rpc/xdr.c \
src/common/lib/libc/rpc/xdr_array.c src/common/lib/libc/rpc/xdr_mem.c
cvs rdiff -u -r1.145 -r1.146 src/include/Makefile
cvs rdiff -u -r1.12 -r1.13 src/include/rpc/Makefile
cvs rdiff -u -r1.15 -r0 src/include/rpc/types.h
cvs rdiff -u -r1.31 -r0 src/include/rpc/xdr.h
cvs rdiff -u -r1.34 -r0 src/lib/libc/rpc/xdr.c
cvs rdiff -u -r1.19 -r0 src/lib/libc/rpc/xdr_array.c
cvs rdiff -u -r1.20 -r0 src/lib/libc/rpc/xdr_mem.c

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

Modified files:

Index: src/common/lib/libc/Makefile.inc
diff -u src/common/lib/libc/Makefile.inc:1.18 src/common/lib/libc/Makefile.inc:1.19
--- src/common/lib/libc/Makefile.inc:1.18	Fri Aug  3 03:35:17 2018
+++ src/common/lib/libc/Makefile.inc	Tue Jun  4 15:07:55 2019
@@ -1,9 +1,9 @@
-# $NetBSD: Makefile.inc,v 1.18 2018/08/03 03:35:17 kamil Exp $
+# $NetBSD: Makefile.inc,v 1.19 2019/06/04 15:07:55 hannken Exp $
 
 .include 
 
 COMMON_DIR:=${.PARSEDIR}
-COMMON_CODEDIRS=atomic gen gmon inet md misc net stdlib string sys
+COMMON_CODEDIRS=atomic gen gmon inet md misc net rpc stdlib string sys
 COMMON_CODEDIRS+=hash/sha1 hash/sha2 hash/sha3 hash/rmd160 hash/murmurhash
 
 .if defined(COMMON_MACHINE_ARCH) && !empty(COMMON_MACHINE_ARCH) && \

Index: src/include/Makefile
diff -u src/include/Makefile:1.145 src/include/Makefile:1.146
--- src/include/Makefile:1.145	Wed Apr 24 10:26:08 2019
+++ src/include/Makefile	Tue Jun  4 15:07:55 2019
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.145 2019/04/24 10:26:08 roy Exp $
+#	$NetBSD: Makefile,v 1.146 2019/06/04 15:07:55 hannken Exp $
 #	@(#)Makefile	8.2 (Berkeley) 1/4/94
 
 # Doing a make includes builds /usr/include
@@ -47,6 +47,7 @@ INCSDIR=	/usr/include
 SUBDIR=		rpc
 SUBDIR+=	../common/include/prop
 SUBDIR+=	../common/include/ppath
+SUBDIR+=	../common/include/rpc
 
 .include 
 .include 

Index: src/include/rpc/Makefile
diff -u src/include/rpc/Makefile:1.12 src/include/rpc/Makefile:1.13
--- src/include/rpc/Makefile:1.12	Sat Jan 11 13:28:43 2003
+++ src/include/rpc/Makefile	Tue Jun  4 15:07:55 2019
@@ -1,10 +1,10 @@
-#	$NetBSD: Makefile,v 1.12 2003/01/11 13:28:43 tron Exp $
+#	$NetBSD: Makefile,v 1.13 2019/06/04 15:07:55 hannken Exp $
 #
 
 INCS=	auth.h auth_unix.h clnt.h clnt_soc.h nettype.h \
 	pmap_clnt.h pmap_prot.h pmap_rmt.h raw.h rpc.h \
 	rpc_com.h rpc_msg.h rpcb_clnt.h rpcb_prot.h rpcent.h \
-	svc.h svc_auth.h svc_soc.h types.h xdr.h
+	svc.h svc_auth.h svc_soc.h
 RPC_INCS=	rpcb_prot.h
 
 INCSDIR=	/usr/include/rpc

Added files:

Index: src/common/include/rpc/Makefile
diff -u /dev/null src/common/include/rpc/Makefile:1.1
--- /dev/null	Tue Jun  4 15:07:55 2019
+++ src/common/include/rpc/Makefile	Tue Jun  4 15:07:55 2019
@@ -0,0 +1,8 @@
+#	$NetBSD: Makefile,v 1.1 2019/06/04 15:07:55 hannken Exp $
+#
+
+INCS=	types.h xdr.h
+
+INCSDIR=	/usr/include/rpc
+
+.include 
Index: src/common/include/rpc/types.h
diff -u /dev/null src/common/include/rpc/types.h:1.1
--- /dev/null	Tue Jun  4 15:07:55 2019
+++ src/common/include/rpc/types.h	Tue Jun  4 15:07:55 2019
@@ -0,0 +1,107 @@
+/*	$NetBSD: types.h,v 1.1 2019/06/04 15:07:55 hannken Exp $	*/
+
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ * 
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ * 
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ * 
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ * 
+ * In no event will 

CVS commit: src/external/cddl/osnet

2019-06-04 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jun  4 08:45:18 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/rpc: xdr.h
src/external/cddl/osnet/lib/libnvpair: Makefile

Log Message:
Use native XDR for libnvpair in userland.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dist/uts/common/rpc/xdr.h
cvs rdiff -u -r1.9 -r1.10 src/external/cddl/osnet/lib/libnvpair/Makefile

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



CVS commit: src/external/cddl/osnet

2019-06-04 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jun  4 08:45:18 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/rpc: xdr.h
src/external/cddl/osnet/lib/libnvpair: Makefile

Log Message:
Use native XDR for libnvpair in userland.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dist/uts/common/rpc/xdr.h
cvs rdiff -u -r1.9 -r1.10 src/external/cddl/osnet/lib/libnvpair/Makefile

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/rpc/xdr.h
diff -u src/external/cddl/osnet/dist/uts/common/rpc/xdr.h:1.4 src/external/cddl/osnet/dist/uts/common/rpc/xdr.h:1.5
--- src/external/cddl/osnet/dist/uts/common/rpc/xdr.h:1.4	Mon May 28 21:05:07 2018
+++ src/external/cddl/osnet/dist/uts/common/rpc/xdr.h	Tue Jun  4 08:45:17 2019
@@ -34,6 +34,7 @@
  *
  */
 
+#if defined(_KERNEL) || defined(_STANDALONE)
 #ifndef _RPC_XDR_H
 #define	_RPC_XDR_H
 
@@ -646,3 +647,6 @@ extern bool_t	xdr_replymsg_hdr(XDR *, st
 #endif
 
 #endif	/* !_RPC_XDR_H */
+#else /* defined(_KERNEL) || defined(_STANDALONE) */
+#include_next 
+#endif /* defined(_KERNEL) || defined(_STANDALONE) */

Index: src/external/cddl/osnet/lib/libnvpair/Makefile
diff -u src/external/cddl/osnet/lib/libnvpair/Makefile:1.9 src/external/cddl/osnet/lib/libnvpair/Makefile:1.10
--- src/external/cddl/osnet/lib/libnvpair/Makefile:1.9	Mon May 28 21:05:09 2018
+++ src/external/cddl/osnet/lib/libnvpair/Makefile	Tue Jun  4 08:45:17 2019
@@ -1,15 +1,13 @@
-#	$NetBSD: Makefile,v 1.9 2018/05/28 21:05:09 chs Exp $
+#	$NetBSD: Makefile,v 1.10 2019/06/04 08:45:17 hannken Exp $
 
 .include 
 
 .PATH:  ${.CURDIR}/../../dist/lib/libnvpair
 .PATH:  ${.CURDIR}/../../dist/common/nvpair
-.PATH:  ${.CURDIR}/../../dist/uts/common/rpc
 
 CPPFLAGS+=	-I${OSNETDIR}/sys \
 		-I${OPENSOLARIS_USR_DISTDIR}/head \
-		-I${OPENSOLARIS_SYS_DISTDIR}/common \
-		-I${OPENSOLARIS_SYS_DISTDIR}/uts/common
+		-I${OPENSOLARIS_SYS_DISTDIR}/common
 
 CPPFLAGS+=	-Wall \
 		-Wno-unknown-pragmas \
@@ -21,9 +19,6 @@ CPPFLAGS+=	-Wall \
 LIB=	nvpair
 
 SRCS=	libnvpair.c nvpair_alloc_system.c nvpair_alloc_fixed.c nvpair.c fnvpair.c nvpair_json.c
-SRCS+=	xdr.c
-SRCS+=	xdr_array.c
-SRCS+=	xdr_mem.c
 
 .include "../../Makefile.zfs"
 .include 



CVS commit: src

2019-06-04 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jun  4 08:44:08 UTC 2019

Modified Files:
src/distrib/sets/lists/base: shl.mi
src/distrib/sets/lists/debug: shl.mi
src/include/rpc: xdr.h
src/lib/libc: shlib_version
src/lib/libc/rpc: xdr_mem.c

Log Message:
Implement xdrmem_control(), used as xdr_control(xdr, XDR_GET_BYTES_AVAIL ...
and bump libc minor number.

Final goal is to remove the unmaintained XDR implementation
at external/cddl/osnet/dist/uts/common/rpc.


To generate a diff of this commit:
cvs rdiff -u -r1.864 -r1.865 src/distrib/sets/lists/base/shl.mi
cvs rdiff -u -r1.223 -r1.224 src/distrib/sets/lists/debug/shl.mi
cvs rdiff -u -r1.30 -r1.31 src/include/rpc/xdr.h
cvs rdiff -u -r1.283 -r1.284 src/lib/libc/shlib_version
cvs rdiff -u -r1.19 -r1.20 src/lib/libc/rpc/xdr_mem.c

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



CVS commit: src

2019-06-04 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Jun  4 08:44:08 UTC 2019

Modified Files:
src/distrib/sets/lists/base: shl.mi
src/distrib/sets/lists/debug: shl.mi
src/include/rpc: xdr.h
src/lib/libc: shlib_version
src/lib/libc/rpc: xdr_mem.c

Log Message:
Implement xdrmem_control(), used as xdr_control(xdr, XDR_GET_BYTES_AVAIL ...
and bump libc minor number.

Final goal is to remove the unmaintained XDR implementation
at external/cddl/osnet/dist/uts/common/rpc.


To generate a diff of this commit:
cvs rdiff -u -r1.864 -r1.865 src/distrib/sets/lists/base/shl.mi
cvs rdiff -u -r1.223 -r1.224 src/distrib/sets/lists/debug/shl.mi
cvs rdiff -u -r1.30 -r1.31 src/include/rpc/xdr.h
cvs rdiff -u -r1.283 -r1.284 src/lib/libc/shlib_version
cvs rdiff -u -r1.19 -r1.20 src/lib/libc/rpc/xdr_mem.c

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

Modified files:

Index: src/distrib/sets/lists/base/shl.mi
diff -u src/distrib/sets/lists/base/shl.mi:1.864 src/distrib/sets/lists/base/shl.mi:1.865
--- src/distrib/sets/lists/base/shl.mi:1.864	Sun Apr 28 00:03:46 2019
+++ src/distrib/sets/lists/base/shl.mi	Tue Jun  4 08:44:08 2019
@@ -1,4 +1,4 @@
-# $NetBSD: shl.mi,v 1.864 2019/04/28 00:03:46 christos Exp $
+# $NetBSD: shl.mi,v 1.865 2019/06/04 08:44:08 hannken Exp $
 #
 # Note:	Don't delete entries from here - mark them as "obsolete" instead,
 #	unless otherwise stated below.
@@ -18,7 +18,7 @@
 ./lib/libblacklist.so.0.0			base-sys-shlib		dynamicroot
 ./lib/libc.so	base-sys-shlib		dynamicroot
 ./lib/libc.so.12base-sys-shlib		dynamicroot
-./lib/libc.so.12.212base-sys-shlib		dynamicroot
+./lib/libc.so.12.213base-sys-shlib		dynamicroot
 ./lib/libcrypt.sobase-sys-shlib		dynamicroot
 ./lib/libcrypt.so.1base-sys-shlib		dynamicroot
 ./lib/libcrypt.so.1.0base-sys-shlib		dynamicroot
@@ -221,7 +221,7 @@
 ./usr/lib/libc++.so.1.0base-sys-shlib		compatfile,libcxx
 ./usr/lib/libc.sobase-sys-shlib		compatfile
 ./usr/lib/libc.so.12base-sys-shlib		compatfile
-./usr/lib/libc.so.12.212			base-sys-shlib		compatfile
+./usr/lib/libc.so.12.213			base-sys-shlib		compatfile
 ./usr/lib/libcdk.sobase-obsolete		compatfile,obsolete
 ./usr/lib/libcom_err.sobase-krb5-shlib		compatfile,kerberos
 ./usr/lib/libcom_err.so.8			base-krb5-shlib		compatfile,kerberos

Index: src/distrib/sets/lists/debug/shl.mi
diff -u src/distrib/sets/lists/debug/shl.mi:1.223 src/distrib/sets/lists/debug/shl.mi:1.224
--- src/distrib/sets/lists/debug/shl.mi:1.223	Sun Apr 28 00:03:46 2019
+++ src/distrib/sets/lists/debug/shl.mi	Tue Jun  4 08:44:08 2019
@@ -1,8 +1,8 @@
-# $NetBSD: shl.mi,v 1.223 2019/04/28 00:03:46 christos Exp $
+# $NetBSD: shl.mi,v 1.224 2019/06/04 08:44:08 hannken Exp $
 ./usr/lib/libbfd_g.a		comp-c-debuglib	debuglib,compatfile,binutils
 ./usr/libdata/debug/lib		base-sys-usr	debug,dynamicroot,compatdir
 ./usr/libdata/debug/lib/libblacklist.so.0.0.debug		comp-sys-debug	debug,dynamicroot
-./usr/libdata/debug/lib/libc.so.12.212.debug			comp-sys-debug	debug,dynamicroot
+./usr/libdata/debug/lib/libc.so.12.213.debug			comp-sys-debug	debug,dynamicroot
 ./usr/libdata/debug/lib/libcrypt.so.1.0.debug			comp-sys-debug	debug,dynamicroot
 ./usr/libdata/debug/lib/libcrypto.so.12.0.debug			comp-sys-debug	debug,dynamicroot,openssl=10
 ./usr/libdata/debug/lib/libcrypto.so.14.0.debug			comp-sys-debug	debug,dynamicroot,openssl=11
@@ -71,7 +71,7 @@
 ./usr/libdata/debug/usr/lib/libbsdmalloc.so.0.0.debug		comp-sys-debug	debug,compatfile
 ./usr/libdata/debug/usr/lib/libbz2.so.1.1.debug			comp-sys-debug	debug,compatfile
 ./usr/libdata/debug/usr/lib/libc++.so.1.0.debug			comp-sys-debug	debug,compatfile,libcxx
-./usr/libdata/debug/usr/lib/libc.so.12.212.debug		comp-sys-debug	debug,compatfile
+./usr/libdata/debug/usr/lib/libc.so.12.213.debug		comp-sys-debug	debug,compatfile
 ./usr/libdata/debug/usr/lib/libcom_err.so.8.0.debug		comp-krb5-debug	debug,compatfile,kerberos
 ./usr/libdata/debug/usr/lib/libcrypt.so.1.0.debug		comp-sys-debug	debug,compatfile
 ./usr/libdata/debug/usr/lib/libcrypto.so.12.0.debug		comp-crypto-debug	debug,compatfile,openssl=10

Index: src/include/rpc/xdr.h
diff -u src/include/rpc/xdr.h:1.30 src/include/rpc/xdr.h:1.31
--- src/include/rpc/xdr.h:1.30	Wed Aug 16 08:35:48 2017
+++ src/include/rpc/xdr.h	Tue Jun  4 08:44:08 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: xdr.h,v 1.30 2017/08/16 08:35:48 christos Exp $	*/
+/*	$NetBSD: xdr.h,v 1.31 2019/06/04 08:44:08 hannken Exp $	*/
 
 /*
  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
@@ -209,8 +209,8 @@ xdr_putint32(XDR *xdrs, int32_t *ip)
 		(*(xdrs)->x_ops->x_destroy)(xdrs)
 
 #define XDR_CONTROL(xdrs, req, op)			\
-	if ((xdrs)->x_ops->x_control)			\
-		(*(xdrs)->x_ops->x_control)(xdrs, req, op)
+	(((xdrs)->x_ops->x_control == NULL) ? (FALSE) : \
+		(*(xdrs)->x_ops->x_control)(xdrs, req, op))
 #define xdr_control(xdrs, req, op) XDR_CONTROL(xdrs, 

CVS commit: src/distrib/sets/lists/tests

2019-05-26 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sun May 26 20:01:07 UTC 2019

Modified Files:
src/distrib/sets/lists/tests: mi

Log Message:
Add entries for the recent tests/lib/libcurses commit.


To generate a diff of this commit:
cvs rdiff -u -r1.812 -r1.813 src/distrib/sets/lists/tests/mi

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



CVS commit: src/distrib/sets/lists/tests

2019-05-26 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sun May 26 20:01:07 UTC 2019

Modified Files:
src/distrib/sets/lists/tests: mi

Log Message:
Add entries for the recent tests/lib/libcurses commit.


To generate a diff of this commit:
cvs rdiff -u -r1.812 -r1.813 src/distrib/sets/lists/tests/mi

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

Modified files:

Index: src/distrib/sets/lists/tests/mi
diff -u src/distrib/sets/lists/tests/mi:1.812 src/distrib/sets/lists/tests/mi:1.813
--- src/distrib/sets/lists/tests/mi:1.812	Fri Apr 26 08:52:16 2019
+++ src/distrib/sets/lists/tests/mi	Sun May 26 20:01:07 2019
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.812 2019/04/26 08:52:16 maya Exp $
+# $NetBSD: mi,v 1.813 2019/05/26 20:01:07 hannken Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -2911,8 +2911,11 @@
 ./usr/tests/lib/libcurses/Atffile		tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libcurses/Kyuafile		tests-lib-tests		compattestfile,atf,kyua
 ./usr/tests/lib/libcurses/check_files			tests-lib-tests	compattestfile,atf
+./usr/tests/lib/libcurses/check_files/add_wch1.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/add_wch2.chk	tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libcurses/check_files/addch.chk		tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libcurses/check_files/addchstr.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/addchstr2.chk	tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libcurses/check_files/addstr.chk	tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libcurses/check_files/attributes.chk	tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libcurses/check_files/background1.chk	tests-lib-tests		compattestfile,atf
@@ -2921,6 +2924,7 @@
 ./usr/tests/lib/libcurses/check_files/background4.chk	tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libcurses/check_files/background5.chk	tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libcurses/check_files/bell.chk		tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/bkgdset1.chk	tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libcurses/check_files/box_standout.chk	tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libcurses/check_files/chgat1.chk	tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libcurses/check_files/chgat2.chk	tests-lib-tests		compattestfile,atf
@@ -2959,9 +2963,72 @@
 ./usr/tests/lib/libcurses/check_files/curs_set2.chk	tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libcurses/check_files/curs_set3.chk	tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libcurses/check_files/curses_start.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/delay_output.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/delch1.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/delch2.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/delch3.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/delch4.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/delch5.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/deleteln1.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/deleteln2.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/deleteln3.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/deleteln4.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/deleteln5.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/deleteln6.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/delwin1.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/delwin2.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/derwin1.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/derwin2.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/doupdate.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/dupwin1.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/dupwin2.chk	tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libcurses/check_files/fill.chk		tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/fill_screen_numbers.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/fill_window_numbers.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/flash.chk	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libcurses/check_files/hline.chk	tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libcurses/check_files/home.chk		tests-lib-tests		compattestfile,atf

CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-05-26 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sun May 26 10:22:59 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: vdev_disk.c

Log Message:
upport wedges as vdevs, use DIOCGWEDGEINFO before DIOCGPARTINFO.

PR kern/54219 zpool create pool dk5 causes kernel panic


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
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.



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-05-26 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sun May 26 10:22:59 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: vdev_disk.c

Log Message:
upport wedges as vdevs, use DIOCGWEDGEINFO before DIOCGPARTINFO.

PR kern/54219 zpool create pool dk5 causes kernel panic


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
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.8 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.9
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.8	Mon Sep  3 16:29:22 2018
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c	Sun May 26 10:22:59 2019
@@ -34,6 +34,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -146,6 +147,8 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi
 	spa_t *spa = vd->vdev_spa;
 	vdev_disk_t *dvd;
 	vnode_t *vp;
+	struct dkwedge_info dkw;
+	struct disk *pdk;
 	int error, cmd;
 	struct partinfo pinfo;
 
@@ -235,9 +238,20 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi
 skip_open:
 	/*
 	 * Determine the actual size of the device.
-	 * XXXNETBSD wedges.
+	 * Try wedge info first as it supports larger disks.
 	 */
-	error = VOP_IOCTL(vp, DIOCGPARTINFO, , FREAD|FWRITE, kcred);
+	error = VOP_IOCTL(vp, DIOCGWEDGEINFO, , FREAD, NOCRED);
+	if (error == 0) {
+		pdk = disk_find(dkw.dkw_parent);
+		if (pdk) {
+			pinfo.pi_secsize = (1 << pdk->dk_byteshift);
+			pinfo.pi_size = dkw.dkw_size;
+			pinfo.pi_offset = dkw.dkw_offset;
+		} else	
+			error = ENODEV;
+	}
+	if (error)
+		error = VOP_IOCTL(vp, DIOCGPARTINFO, , FREAD, kcred);
 	if (error != 0) {
 		vd->vdev_stat.vs_aux = VDEV_AUX_OPEN_FAILED;
 		return (SET_ERROR(error));



CVS commit: src/sys/dev

2019-05-26 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sun May 26 10:22:07 UTC 2019

Modified Files:
src/sys/dev: md.c

Log Message:
Take "sc_lock" after calling disk_ioctl() to make GPT partitioning work.


To generate a diff of this commit:
cvs rdiff -u -r1.80 -r1.81 src/sys/dev/md.c

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

Modified files:

Index: src/sys/dev/md.c
diff -u src/sys/dev/md.c:1.80 src/sys/dev/md.c:1.81
--- src/sys/dev/md.c:1.80	Sat Mar  3 19:26:12 2018
+++ src/sys/dev/md.c	Sun May 26 10:22:07 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: md.c,v 1.80 2018/03/03 19:26:12 christos Exp $	*/
+/*	$NetBSD: md.c,v 1.81 2019/05/26 10:22:07 hannken Exp $	*/
 
 /*
  * Copyright (c) 1995 Gordon W. Ross, Leo Weppelman.
@@ -40,7 +40,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: md.c,v 1.80 2018/03/03 19:26:12 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: md.c,v 1.81 2019/05/26 10:22:07 hannken Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_md.h"
@@ -479,21 +479,19 @@ mdioctl(dev_t dev, u_long cmd, void *dat
 	if ((sc = device_lookup_private(_cd, MD_UNIT(dev))) == NULL)
 		return ENXIO;
 
-	mutex_enter(>sc_lock);
 	if (sc->sc_type != MD_UNCONFIGURED) {
 		error = disk_ioctl(>sc_dkdev, dev, cmd, data, flag, l); 
 		if (error != EPASSTHROUGH) {
-			mutex_exit(>sc_lock);
-			return 0;
+			return error;
 		}
 	}
 
 	/* If this is not the raw partition, punt! */
 	if (DISKPART(dev) != RAW_PART) {
-		mutex_exit(>sc_lock);
 		return ENOTTY;
 	}
 
+	mutex_enter(>sc_lock);
 	umd = (struct md_conf *)data;
 	error = EINVAL;
 	switch (cmd) {



CVS commit: src/sys/dev

2019-05-26 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sun May 26 10:22:07 UTC 2019

Modified Files:
src/sys/dev: md.c

Log Message:
Take "sc_lock" after calling disk_ioctl() to make GPT partitioning work.


To generate a diff of this commit:
cvs rdiff -u -r1.80 -r1.81 src/sys/dev/md.c

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



CVS commit: src/external/cddl/osnet

2019-05-26 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sun May 26 10:21:01 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: arc.c dbuf.c dnode.c
sa.c zfs_znode.c
src/external/cddl/osnet/lib/libumem: umem.c

Log Message:
Add missing part of kmem_cache cleanup.  Use Solaris argument order for
kmem_cache destructors, umem_cache_alloc() and umem_cache_free() too.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c
cvs rdiff -u -r1.7 -r1.8 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c
cvs rdiff -u -r1.6 -r1.7 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c
cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c
cvs rdiff -u -r1.27 -r1.28 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/lib/libumem/umem.c

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



CVS commit: src/sys/sys

2019-05-26 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sun May 26 10:21:33 UTC 2019

Modified Files:
src/sys/sys: ioccom.h

Log Message:
Fix IOCSNPRINTF(), 'R' and 'W' were reversed.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/sys/sys/ioccom.h

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

Modified files:

Index: src/sys/sys/ioccom.h
diff -u src/sys/sys/ioccom.h:1.12 src/sys/sys/ioccom.h:1.13
--- src/sys/sys/ioccom.h:1.12	Wed Dec 10 00:16:05 2014
+++ src/sys/sys/ioccom.h	Sun May 26 10:21:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: ioccom.h,v 1.12 2014/12/10 00:16:05 christos Exp $	*/
+/*	$NetBSD: ioccom.h,v 1.13 2019/05/26 10:21:33 hannken Exp $	*/
 
 /*-
  * Copyright (c) 1982, 1986, 1990, 1993, 1994
@@ -74,8 +74,8 @@
 
 #define IOCSNPRINTF(buf, len, cmd) \
 snprintf((buf), (len), "_IO%s%s('%c', %hhu)", \
-	(((cmd) >> 30) & 1) ? "W" : "", \
-	(((cmd) >> 30) & 2) ? "R" : "", \
+	(((cmd) >> 30) & 1) ? "R" : "", \
+	(((cmd) >> 30) & 2) ? "W" : "", \
 	(char)IOCGROUP(cmd), (unsigned char)(cmd))
 		
 



CVS commit: src/external/cddl/osnet

2019-05-26 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sun May 26 10:21:01 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: arc.c dbuf.c dnode.c
sa.c zfs_znode.c
src/external/cddl/osnet/lib/libumem: umem.c

Log Message:
Add missing part of kmem_cache cleanup.  Use Solaris argument order for
kmem_cache destructors, umem_cache_alloc() and umem_cache_free() too.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c
cvs rdiff -u -r1.7 -r1.8 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c
cvs rdiff -u -r1.6 -r1.7 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c
cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c
cvs rdiff -u -r1.27 -r1.28 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/lib/libumem/umem.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.13 src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.14
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.13	Thu May 23 08:32:30 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c	Sun May 26 10:21:00 2019
@@ -1623,9 +1623,6 @@ hdr_full_dest(void *vbuf, void *unused)
 {
 	arc_buf_hdr_t *hdr = vbuf;
 
-#ifdef __NetBSD__
-	hdr = unused;
-#endif
 	ASSERT(HDR_EMPTY(hdr));
 	cv_destroy(>b_l1hdr.b_cv);
 	refcount_destroy(>b_l1hdr.b_refcnt);
@@ -1640,9 +1637,6 @@ hdr_l2only_dest(void *vbuf, void *unused
 {
 	arc_buf_hdr_t *hdr = vbuf;
 
-#ifdef __NetBSD__
-	hdr = unused;
-#endif
 	ASSERT(HDR_EMPTY(hdr));
 	arc_space_return(HDR_L2ONLY_SIZE, ARC_SPACE_L2HDRS);
 }
@@ -1653,9 +1647,6 @@ buf_dest(void *vbuf, void *unused)
 {
 	arc_buf_t *buf = vbuf;
 
-#ifdef __NetBSD__
-	buf = unused;
-#endif
 	mutex_destroy(>b_evict_lock);
 	arc_space_return(sizeof (arc_buf_t), ARC_SPACE_HDRS);
 }

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c:1.7 src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c:1.8
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c:1.7	Thu May 23 08:32:30 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c	Sun May 26 10:21:00 2019
@@ -153,9 +153,6 @@ dbuf_dest(void *vdb, void *unused)
 {
 	dmu_buf_impl_t *db = vdb;
 
-#ifdef __NetBSD__
-	db = unused;
-#endif
 	mutex_destroy(>db_mtx);
 	cv_destroy(>db_changed);
 	ASSERT(!multilist_link_active(>db_cache_link));

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c:1.6 src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c:1.7
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c:1.6	Thu May 23 08:32:30 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c	Sun May 26 10:21:00 2019
@@ -168,9 +168,6 @@ dnode_dest(void *arg, void *unused)
 	int i;
 	dnode_t *dn = arg;
 
-#ifdef __NetBSD__
-	dn = unused;
-#endif
 	rw_destroy(>dn_struct_rwlock);
 	mutex_destroy(>dn_mtx);
 	mutex_destroy(>dn_dbufs_mtx);

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c:1.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c:1.4
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c:1.3	Thu May 23 08:32:30 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c	Sun May 26 10:21:00 2019
@@ -222,9 +222,6 @@ sa_cache_destructor(void *buf, void *unu
 {
 	sa_handle_t *hdl = buf;
 
-#ifdef __NetBSD__
-	hdl = unused;
-#endif
 	mutex_destroy(>sa_lock);
 }
 

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.27 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.28
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.27	Thu May 23 08:32:30 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c	Sun May 26 10:21:00 2019
@@ -152,9 +152,6 @@ zfs_znode_cache_destructor(void *buf, vo
 {
 	znode_t *zp = buf;
 
-#ifdef __NetBSD__
-	zp = arg;
-#endif
 	ASSERT(!POINTER_IS_VALID(zp->z_zfsvfs));
 	ASSERT(ZTOV(zp) == NULL);
 #ifndef __NetBSD__

Index: src/external/cddl/osnet/lib/libumem/umem.c
diff -u src/external/cddl/osnet/lib/libumem/umem.c:1.2 src/external/cddl/osnet/lib/libumem/umem.c:1.3
--- src/external/cddl/osnet/lib/libumem/umem.c:1.2	Sun May  2 23:59:54 2010
+++ src/external/cddl/osnet/lib/libumem/umem.c	Sun May 26 10:21:00 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: umem.c,v 1.2 2010/05/02 23:59:54 haad Exp $	*/
+/*	$NetBSD: umem.c,v 1.3 2019/05/26 10:21:00 hannken Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -135,8 +135,7 @@ void *umem_cache_alloc(umem_cache_t *cac
 	}
 
 	if(cache->constructor != NULL) {
-		/* XXX NetBSD pool cache 

CVS commit: src/external/cddl/osnet

2019-05-23 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Thu May 23 08:32:31 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: arc.c dbuf.c dnode.c
sa.c zfs_znode.c
src/external/cddl/osnet/sys/kern: kmem.c
src/external/cddl/osnet/sys/sys: kmem.h

Log Message:
Update the kmem_cache emulation to run its callbacks with
Solaris argument order.

No functional change intended.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c
cvs rdiff -u -r1.6 -r1.7 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c
cvs rdiff -u -r1.5 -r1.6 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c
cvs rdiff -u -r1.26 -r1.27 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c
cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/sys/kern/kmem.c
cvs rdiff -u -r1.10 -r1.11 src/external/cddl/osnet/sys/sys/kmem.h

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



CVS commit: src/external/cddl/osnet

2019-05-23 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Thu May 23 08:32:31 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: arc.c dbuf.c dnode.c
sa.c zfs_znode.c
src/external/cddl/osnet/sys/kern: kmem.c
src/external/cddl/osnet/sys/sys: kmem.h

Log Message:
Update the kmem_cache emulation to run its callbacks with
Solaris argument order.

No functional change intended.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c
cvs rdiff -u -r1.6 -r1.7 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c
cvs rdiff -u -r1.5 -r1.6 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c
cvs rdiff -u -r1.26 -r1.27 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c
cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/sys/kern/kmem.c
cvs rdiff -u -r1.10 -r1.11 src/external/cddl/osnet/sys/sys/kmem.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/arc.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.12 src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.13
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.12	Mon May 28 21:05:07 2018
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c	Thu May 23 08:32:30 2019
@@ -1578,9 +1578,6 @@ hdr_full_cons(void *vbuf, void *unused, 
 {
 	arc_buf_hdr_t *hdr = vbuf;
 
-#ifdef __NetBSD__
-	hdr = unused;
-#endif
 	bzero(hdr, HDR_FULL_SIZE);
 	cv_init(>b_l1hdr.b_cv, NULL, CV_DEFAULT, NULL);
 	refcount_create(>b_l1hdr.b_refcnt);
@@ -1597,9 +1594,6 @@ hdr_l2only_cons(void *vbuf, void *unused
 {
 	arc_buf_hdr_t *hdr = vbuf;
 
-#ifdef __NetBSD__
-	hdr = unused;
-#endif
 	bzero(hdr, HDR_L2ONLY_SIZE);
 	arc_space_consume(HDR_L2ONLY_SIZE, ARC_SPACE_L2HDRS);
 
@@ -1612,9 +1606,6 @@ buf_cons(void *vbuf, void *unused, int k
 {
 	arc_buf_t *buf = vbuf;
 
-#ifdef __NetBSD__
-	buf = unused;
-#endif
 	bzero(buf, sizeof (arc_buf_t));
 	mutex_init(>b_evict_lock, NULL, MUTEX_DEFAULT, NULL);
 	arc_space_consume(sizeof (arc_buf_t), ARC_SPACE_HDRS);

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c:1.6 src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c:1.7
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c:1.6	Mon May 28 21:05:07 2018
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c	Thu May 23 08:32:30 2019
@@ -138,9 +138,6 @@ dbuf_cons(void *vdb, void *unused, int k
 {
 	dmu_buf_impl_t *db = vdb;
 
-#ifdef __NetBSD__
-	db = unused;
-#endif
 	bzero(db, sizeof (dmu_buf_impl_t));
 	mutex_init(>db_mtx, NULL, MUTEX_DEFAULT, NULL);
 	cv_init(>db_changed, NULL, CV_DEFAULT, NULL);

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c:1.5 src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c:1.6
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c:1.5	Mon May 28 21:05:07 2018
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c	Thu May 23 08:32:30 2019
@@ -107,9 +107,6 @@ dnode_cons(void *arg, void *unused, int 
 	dnode_t *dn = arg;
 	int i;
 
-#ifdef __NetBSD__
-	dn = unused;
-#endif
 	rw_init(>dn_struct_rwlock, NULL, RW_DEFAULT, NULL);
 	mutex_init(>dn_mtx, NULL, MUTEX_DEFAULT, NULL);
 	mutex_init(>dn_dbufs_mtx, NULL, MUTEX_DEFAULT, NULL);

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c:1.2 src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c:1.3
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c:1.2	Mon May 28 21:05:07 2018
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c	Thu May 23 08:32:30 2019
@@ -212,9 +212,6 @@ sa_cache_constructor(void *buf, void *un
 {
 	sa_handle_t *hdl = buf;
 
-#ifdef __NetBSD__
-	hdl = unused;
-#endif
 	mutex_init(>sa_lock, NULL, MUTEX_DEFAULT, NULL);
 	return (0);
 }

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.26 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.27
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.26	Mon Apr 15 12:59:38 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c	Thu May 23 08:32:30 2019
@@ -130,9 +130,6 @@ zfs_znode_cache_constructor(void *buf, v
 {
 	znode_t *zp = buf;
 
-#ifdef __NetBSD__
-	zp = arg;
-#endif
 	POINTER_INVALIDATE(>z_zfsvfs);
 
 	list_link_init(>z_link_node);

Index: src/external/cddl/osnet/sys/kern/kmem.c
diff -u src/external/cddl/osnet/sys/kern/kmem.c:1.1 src/external/cddl/osnet/sys/kern/kmem.c:1.2
--- src/external/cddl/osnet/sys/kern/kmem.c:1.1	Mon May 28 21:05:09 2018
+++ src/external/cddl/osnet/sys/kern/kmem.c	Thu May 23 08:32:30 2019
@@ -1,4 +1,4 @@
-/*	

CVS commit: src

2019-05-22 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed May 22 08:47:02 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zvol.c
src/sys/kern: subr_disk.c subr_iostat.c
src/sys/sys: disk.h iostat.h

Log Message:
Implement disk_rename()/iostat_rename() to rename a disk.

Use it from zvol_rename_minor() when renaming a ZVOL.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c
cvs rdiff -u -r1.127 -r1.128 src/sys/kern/subr_disk.c
cvs rdiff -u -r1.24 -r1.25 src/sys/kern/subr_iostat.c
cvs rdiff -u -r1.73 -r1.74 src/sys/sys/disk.h
cvs rdiff -u -r1.11 -r1.12 src/sys/sys/iostat.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/zvol.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c:1.11 src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c:1.12
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c:1.11	Wed May 22 08:46:27 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c	Wed May 22 08:47:02 2019
@@ -3270,7 +3270,9 @@ zvol_rename_minor(zvol_state_t *zv, cons
 	PNBUF_PUT(nm);
 
 	strlcpy(zv->zv_name, newname, sizeof(zv->zv_name));
-	/* XXX Update dk_name? */
+	mutex_enter(>zv_dklock);
+	disk_rename(>zv_dk, zv->zv_name);
+	mutex_exit(>zv_dklock);
 }
 #endif
 

Index: src/sys/kern/subr_disk.c
diff -u src/sys/kern/subr_disk.c:1.127 src/sys/kern/subr_disk.c:1.128
--- src/sys/kern/subr_disk.c:1.127	Thu Apr  4 20:19:07 2019
+++ src/sys/kern/subr_disk.c	Wed May 22 08:47:02 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: subr_disk.c,v 1.127 2019/04/04 20:19:07 christos Exp $	*/
+/*	$NetBSD: subr_disk.c,v 1.128 2019/05/22 08:47:02 hannken Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 1999, 2000, 2009 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: subr_disk.c,v 1.127 2019/04/04 20:19:07 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: subr_disk.c,v 1.128 2019/05/22 08:47:02 hannken Exp $");
 
 #include 
 #include 
@@ -199,6 +199,17 @@ disk_init(struct disk *diskp, const char
 }
 
 /*
+ * Rename a disk.
+ */
+void
+disk_rename(struct disk *diskp, const char *name)
+{
+
+	diskp->dk_name = name;
+	iostat_rename(diskp->dk_stats, diskp->dk_name);
+}
+
+/*
  * Attach a disk.
  */
 void

Index: src/sys/kern/subr_iostat.c
diff -u src/sys/kern/subr_iostat.c:1.24 src/sys/kern/subr_iostat.c:1.25
--- src/sys/kern/subr_iostat.c:1.24	Mon Sep  3 16:29:35 2018
+++ src/sys/kern/subr_iostat.c	Wed May 22 08:47:02 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: subr_iostat.c,v 1.24 2018/09/03 16:29:35 riastradh Exp $	*/
+/*	$NetBSD: subr_iostat.c,v 1.25 2019/05/22 08:47:02 hannken Exp $	*/
 /*	NetBSD: subr_disk.c,v 1.69 2005/05/29 22:24:15 christos Exp	*/
 
 /*-
@@ -68,7 +68,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: subr_iostat.c,v 1.24 2018/09/03 16:29:35 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: subr_iostat.c,v 1.25 2019/05/22 08:47:02 hannken Exp $");
 
 #include 
 #include 
@@ -180,6 +180,18 @@ iostat_free(struct io_stats *stats)
 }
 
 /*
+ * Rename i/o stats.
+ */
+void
+iostat_rename(struct io_stats *stats, const char *name)
+{
+
+	rw_enter(_lock, RW_WRITER);
+	(void)strlcpy(stats->io_name, name, sizeof(stats->io_name));
+	rw_exit(_lock);
+}
+
+/*
  * multiply timeval by unsigned integer and add to result
  */
 static void

Index: src/sys/sys/disk.h
diff -u src/sys/sys/disk.h:1.73 src/sys/sys/disk.h:1.74
--- src/sys/sys/disk.h:1.73	Tue Nov  6 04:04:34 2018
+++ src/sys/sys/disk.h	Wed May 22 08:47:02 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: disk.h,v 1.73 2018/11/06 04:04:34 mrg Exp $	*/
+/*	$NetBSD: disk.h,v 1.74 2019/05/22 08:47:02 hannken Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 2004 The NetBSD Foundation, Inc.
@@ -527,6 +527,7 @@ extern	int disk_count;			/* number of di
 
 struct proc;
 
+void	disk_rename(struct disk *, const char *);
 void	disk_attach(struct disk *);
 int	disk_begindetach(struct disk *, int (*)(device_t), device_t, int);
 void	disk_detach(struct disk *);

Index: src/sys/sys/iostat.h
diff -u src/sys/sys/iostat.h:1.11 src/sys/sys/iostat.h:1.12
--- src/sys/sys/iostat.h:1.11	Sun Mar  5 23:07:12 2017
+++ src/sys/sys/iostat.h	Wed May 22 08:47:02 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: iostat.h,v 1.11 2017/03/05 23:07:12 mlelstv Exp $	*/
+/*	$NetBSD: iostat.h,v 1.12 2019/05/22 08:47:02 hannken Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 2004, 2009 The NetBSD Foundation, Inc.
@@ -121,6 +121,7 @@ bool	iostat_isbusy(struct io_stats *);
 struct io_stats *iostat_find(const char *);
 struct io_stats *iostat_alloc(int32_t, void *, const char *);
 void	iostat_free(struct io_stats *);
+void	iostat_rename(struct io_stats *, const char *);
 void	iostat_seek(struct io_stats *);
 #endif
 



CVS commit: src

2019-05-22 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed May 22 08:47:02 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zvol.c
src/sys/kern: subr_disk.c subr_iostat.c
src/sys/sys: disk.h iostat.h

Log Message:
Implement disk_rename()/iostat_rename() to rename a disk.

Use it from zvol_rename_minor() when renaming a ZVOL.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c
cvs rdiff -u -r1.127 -r1.128 src/sys/kern/subr_disk.c
cvs rdiff -u -r1.24 -r1.25 src/sys/kern/subr_iostat.c
cvs rdiff -u -r1.73 -r1.74 src/sys/sys/disk.h
cvs rdiff -u -r1.11 -r1.12 src/sys/sys/iostat.h

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



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-05-22 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed May 22 08:46:27 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_ioctl.c zvol.c

Log Message:
Add missing zvol_close() to zfsdev_close().

Change zvol_size_changed() to initialize "zv->zv_volsize"
and initialize only "dg_secsize" and "dg_secperunit".
Calling disk_set_info() will initialize the remaining
parts of the geometry.

Set "doread" in zvol_strategy() to make reading from
device possible.

Reorganize/add disk_busy()/disk_unbusy() instrumentation.

Redo zvol_ioctl() to implement DIOCGWEDGEINFO and let
disk_ioctl() process the remaining ioctls.


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c
cvs rdiff -u -r1.10 -r1.11 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c

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



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-05-22 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed May 22 08:45:32 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: dsl_dataset.c dsl_dir.c
spa.c zfs_ioctl.c zfs_vfsops.c zvol.c
src/external/cddl/osnet/dist/uts/common/fs/zfs/sys: zvol.h

Log Message:
Enable the zvol minor management to create and remove device nodes.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c
cvs rdiff -u -r1.2 -r1.3 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dir.c
cvs rdiff -u -r1.8 -r1.9 src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c
cvs rdiff -u -r1.18 -r1.19 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c
cvs rdiff -u -r1.22 -r1.23 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c
cvs rdiff -u -r1.9 -r1.10 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c
cvs rdiff -u -r1.4 -r1.5 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zvol.h

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



CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs

2019-05-22 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed May 22 08:45:32 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: dsl_dataset.c dsl_dir.c
spa.c zfs_ioctl.c zfs_vfsops.c zvol.c
src/external/cddl/osnet/dist/uts/common/fs/zfs/sys: zvol.h

Log Message:
Enable the zvol minor management to create and remove device nodes.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c
cvs rdiff -u -r1.2 -r1.3 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dir.c
cvs rdiff -u -r1.8 -r1.9 src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c
cvs rdiff -u -r1.18 -r1.19 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c
cvs rdiff -u -r1.22 -r1.23 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c
cvs rdiff -u -r1.9 -r1.10 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c
cvs rdiff -u -r1.4 -r1.5 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zvol.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/dsl_dataset.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c:1.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c:1.4
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c:1.3	Mon May 28 21:05:07 2018
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c	Wed May 22 08:45:32 2019
@@ -1612,7 +1612,7 @@ dsl_dataset_snapshot(nvlist_t *snaps, nv
 		fnvlist_free(suspended);
 	}
 
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 #ifdef _KERNEL
 	if (error == 0) {
 		for (pair = nvlist_next_nvpair(snaps, NULL); pair != NULL;
@@ -2164,7 +2164,7 @@ static int
 dsl_dataset_rename_snapshot_sync_impl(dsl_pool_t *dp,
 dsl_dataset_t *hds, void *arg)
 {
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 #ifdef _KERNEL
 	char *oldname, *newname;
 #endif
@@ -2197,7 +2197,7 @@ dsl_dataset_rename_snapshot_sync_impl(ds
 	dsl_dataset_phys(hds)->ds_snapnames_zapobj,
 	ds->ds_snapname, 8, 1, >ds_object, tx));
 
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 #ifdef _KERNEL
 	oldname = kmem_alloc(MAXPATHLEN, KM_SLEEP);
 	newname = kmem_alloc(MAXPATHLEN, KM_SLEEP);
@@ -2640,7 +2640,7 @@ dsl_dataset_promote_sync(void *arg, dmu_
 	dsl_dir_t *odd = NULL;
 	uint64_t oldnext_obj;
 	int64_t delta;
-#if defined(__FreeBSD__) && defined(_KERNEL)
+#if (defined(__FreeBSD__) || defined(__NetBSD__)) && defined(_KERNEL)
 	char *oldname, *newname;
 #endif
 
@@ -2710,7 +2710,7 @@ dsl_dataset_promote_sync(void *arg, dmu_
 		dsl_dir_phys(dd)->dd_clones, origin_head->ds_object, tx));
 	}
 
-#if defined(__FreeBSD__) && defined(_KERNEL)
+#if (defined(__FreeBSD__) || defined(__NetBSD__)) && defined(_KERNEL)
 	/* Take the spa_namespace_lock early so zvol renames don't deadlock. */
 	mutex_enter(_namespace_lock);
 
@@ -2752,7 +2752,7 @@ dsl_dataset_promote_sync(void *arg, dmu_
 		VERIFY0(dsl_dir_hold_obj(dp, dd->dd_object,
 		NULL, ds, >ds_dir));
 
-#if defined(__FreeBSD__) && defined(_KERNEL)
+#if (defined(__FreeBSD__) || defined(__NetBSD__)) && defined(_KERNEL)
 		dsl_dataset_name(ds, newname);
 		zfsvfs_update_fromname(oldname, newname);
 		zvol_rename_minors(oldname, newname);

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dir.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dir.c:1.2 src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dir.c:1.3
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dir.c:1.2	Mon May 28 21:05:07 2018
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dir.c	Wed May 22 08:45:32 2019
@@ -1912,7 +1912,7 @@ dsl_dir_rename_sync(void *arg, dmu_tx_t 
 	VERIFY0(zap_add(mos, dsl_dir_phys(newparent)->dd_child_dir_zapobj,
 	dd->dd_myname, 8, 1, >dd_object, tx));
 
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 #ifdef _KERNEL
 	zfsvfs_update_fromname(ddra->ddra_oldname, ddra->ddra_newname);
 	zvol_rename_minors(ddra->ddra_oldname, ddra->ddra_newname);

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c:1.8 src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c:1.9
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c:1.8	Tue May  7 08:49:59 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c	Wed May 22 08:45:32 2019
@@ -3226,7 +3226,7 @@ spa_open_common(const char *pool, spa_t 
 		spa->spa_last_ubsync_txg = 0;
 		spa->spa_load_txg = 0;
 		mutex_exit(_namespace_lock);
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 #ifdef _KERNEL
 		if (firstopen)
 			zvol_create_minors(spa->spa_name);
@@ -4508,7 +4508,7 @@ spa_import(const char *pool, nvlist_t *c
 
 	mutex_exit(_namespace_lock);
 
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || 

CVS commit: src/external/cddl/osnet

2019-05-22 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed May 22 08:44:49 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_ioctl.c zvol.c
src/external/cddl/osnet/sys/kern: ddi.c
src/external/cddl/osnet/sys/sys: sunddi.h

Log Message:
Update ddi environment:
- Put device major numbers into "dev_info_t".
- Fix an off-by-one in zvol_create_minor().
- When creating a node handle existing nodes
  and add owner read/write permission.
- When removing nodes remove now empty directories.


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c
cvs rdiff -u -r1.8 -r1.9 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c
cvs rdiff -u -r1.6 -r1.7 src/external/cddl/osnet/sys/kern/ddi.c
cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/sys/sys/sunddi.h

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



CVS commit: src/external/cddl/osnet

2019-05-22 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed May 22 08:44:49 UTC 2019

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_ioctl.c zvol.c
src/external/cddl/osnet/sys/kern: ddi.c
src/external/cddl/osnet/sys/sys: sunddi.h

Log Message:
Update ddi environment:
- Put device major numbers into "dev_info_t".
- Fix an off-by-one in zvol_create_minor().
- When creating a node handle existing nodes
  and add owner read/write permission.
- When removing nodes remove now empty directories.


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c
cvs rdiff -u -r1.8 -r1.9 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c
cvs rdiff -u -r1.6 -r1.7 src/external/cddl/osnet/sys/kern/ddi.c
cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/sys/sys/sunddi.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/zfs_ioctl.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c:1.17 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c:1.18
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c:1.17	Tue May  7 08:51:09 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c	Wed May 22 08:44:48 2019
@@ -211,11 +211,8 @@ static struct cdev *zfsdev;
 #endif
 
 #ifdef __NetBSD__
-static int zfs_cmajor = -1;
-static int zfs_bmajor = -1;
-dev_info_t *zfs_dip;
-
-#define ddi_driver_major(x)	zfs_cmajor
+static dev_info_t __zfs_devinfo = { -1, -1 };
+dev_info_t *zfs_dip = &__zfs_devinfo;
 
 #define zfs_init() /* nothing */
 #define zfs_fini() /* nothing */
@@ -7204,8 +7201,8 @@ zfs_modcmd(modcmd_t cmd, void *arg)
 		zfs_ioctl_init();
 		zfs_sysctl_init();
 
-		error = devsw_attach("zfs", _bdevsw, _bmajor,
-		_cdevsw, _cmajor);
+		error = devsw_attach("zfs", _bdevsw, _dip->di_bmajor,
+		_cdevsw, _dip->di_cmajor);
 		if (error != 0) {
 			goto attacherr;
 		}

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c:1.8 src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c:1.9
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c:1.8	Mon May 28 21:05:07 2018
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c	Wed May 22 08:44:48 2019
@@ -676,7 +676,7 @@ zvol_create_minor(const char *name)
 	minor_t minor = 0;
 	vnode_t *vp = NULL;
 	char *devpath;
-	size_t devpathlen = strlen(ZVOL_FULL_DEV_DIR) + strlen(name) + 1;
+	size_t devpathlen = strlen(ZVOL_FULL_DEV_DIR) + strlen(name) + 2;
 #endif
 
 	mutex_enter(_state_lock);

Index: src/external/cddl/osnet/sys/kern/ddi.c
diff -u src/external/cddl/osnet/sys/kern/ddi.c:1.6 src/external/cddl/osnet/sys/kern/ddi.c:1.7
--- src/external/cddl/osnet/sys/kern/ddi.c:1.6	Mon May 28 21:05:09 2018
+++ src/external/cddl/osnet/sys/kern/ddi.c	Wed May 22 08:44:48 2019
@@ -65,6 +65,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 
 __strong_alias(ddi_strtol,ddi_strtoul)
@@ -142,6 +143,50 @@ do_mkdirp(const char *path)
 	return error;
 }
 
+static void
+do_rmdirp(const char *path)
+{
+	struct pathbuf *pb;
+	struct nameidata nd;
+	char *here, *e;
+	int error;
+
+	here = PNBUF_GET();
+	strlcpy(here, path, MAXPATHLEN);
+	while ((e = strrchr(here, '/')) && e != here) {
+		*e = '\0';
+		pb = pathbuf_create(here);
+		if (pb == NULL)
+			break;
+		/* XXX need do_sys_rmdir()? */
+		NDINIT(, DELETE, LOCKPARENT | LOCKLEAF | TRYEMULROOT, pb);
+		error = namei();
+		if (error) {
+			pathbuf_destroy(pb);
+			break;
+		}
+		if ((nd.ni_vp->v_vflag & VV_ROOT) ||
+		nd.ni_vp->v_type != VDIR ||
+		nd.ni_vp->v_mountedhere ||
+		nd.ni_vp == nd.ni_dvp) {
+			VOP_ABORTOP(nd.ni_dvp, _cnd);
+			if (nd.ni_vp == nd.ni_dvp)
+vrele(nd.ni_dvp);
+			else
+vput(nd.ni_dvp);
+			vput(nd.ni_vp);
+			pathbuf_destroy(pb);
+			break;
+		}
+		error = VOP_RMDIR(nd.ni_dvp, nd.ni_vp, _cnd);
+		vput(nd.ni_dvp);
+		pathbuf_destroy(pb);
+		if (error)
+			break;
+	}
+	PNBUF_PUT(here);
+}
+
 int
 ddi_strtoul(const char *str, char **nptr, int base, unsigned long *result)
 {
@@ -562,25 +607,49 @@ ddi_create_minor_node(dev_info_t *dip, c
 minor_t minor_num, char *node_type, int flag)
 {
 	struct lwp *l = curlwp;
+	vnode_t *vp;
+	enum vtype vtype;
+	struct stat sb;
 	char *pn;
 	dev_t dev;
 	int error;
 	register_t ret;
 
-	printf("ddi_create_minor_node: name %s\n", name);
-
-	dev = makedev(flag, minor_num);
-	
 	pn = PNBUF_GET();
-	if (spec_type == S_IFCHR)
+	if (spec_type == S_IFCHR) {
+		vtype = VCHR;
+		dev = makedev(dip->di_cmajor, minor_num);
 		snprintf(pn, MAXPATHLEN, "/dev/zvol/rdsk/%s", name);
-	else
+	} else if (spec_type == S_IFBLK) {
+		vtype = VBLK;
+		dev = makedev(dip->di_bmajor, minor_num);
 		snprintf(pn, MAXPATHLEN, "/dev/zvol/dsk/%s", name);
+	} else {
+		panic("bad spectype %#x", spec_type);
+	}
+	spec_type |= (S_IRUSR | 

<    1   2   3   4   5   >