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

2021-08-18 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Aug 18 11:26:17 UTC 2021

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

Log Message:
PR/56355: Exclude the symbol trap, not all symbols other than trap.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/dev/fbt/x86/fbt_isa.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/x86/fbt_isa.c
diff -u src/external/cddl/osnet/dev/fbt/x86/fbt_isa.c:1.5 src/external/cddl/osnet/dev/fbt/x86/fbt_isa.c:1.6
--- src/external/cddl/osnet/dev/fbt/x86/fbt_isa.c:1.5	Sun Aug 15 16:33:57 2021
+++ src/external/cddl/osnet/dev/fbt/x86/fbt_isa.c	Wed Aug 18 11:26:17 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: fbt_isa.c,v 1.5 2021/08/15 16:33:57 christos Exp $	*/
+/*	$NetBSD: fbt_isa.c,v 1.6 2021/08/18 11:26:17 riastradh Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -251,7 +251,7 @@ fbt_provide_module_cb(const char *name, 
 	/*
 	 * Exclude some more symbols which can be called from probe context.
 	 */
-	if (strcmp(name, "trap") ||
+	if (strcmp(name, "trap") == 0 ||
 	strcmp(name, "x86_curcpu") == 0 ||
 	strcmp(name, "x86_curlwp") == 0) {
 		return 0;



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

2021-08-15 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sun Aug 15 16:33:57 UTC 2021

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

Log Message:
PR/56355: Taylor Campbell: restore strcmp() over strncmp()


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/fbt/x86/fbt_isa.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/x86/fbt_isa.c
diff -u src/external/cddl/osnet/dev/fbt/x86/fbt_isa.c:1.4 src/external/cddl/osnet/dev/fbt/x86/fbt_isa.c:1.5
--- src/external/cddl/osnet/dev/fbt/x86/fbt_isa.c:1.4	Wed Aug 11 07:16:49 2021
+++ src/external/cddl/osnet/dev/fbt/x86/fbt_isa.c	Sun Aug 15 12:33:57 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: fbt_isa.c,v 1.4 2021/08/11 11:16:49 christos Exp $	*/
+/*	$NetBSD: fbt_isa.c,v 1.5 2021/08/15 16:33:57 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -251,9 +251,9 @@ fbt_provide_module_cb(const char *name, 
 	/*
 	 * Exclude some more symbols which can be called from probe context.
 	 */
-	if (strncmp(name, "trap", 4) ||
-	strncmp(name, "x86_curcpu", 10) == 0 ||
-	strncmp(name, "x86_curlwp", 10) == 0) {
+	if (strcmp(name, "trap") ||
+	strcmp(name, "x86_curcpu") == 0 ||
+	strcmp(name, "x86_curlwp") == 0) {
 		return 0;
 	}
 #endif



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

2021-08-11 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Wed Aug 11 11:16:49 UTC 2021

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

Log Message:
PR/56355: Brad Harder: dtrace triggers double-fault in supervisor mode


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/dev/fbt/x86/fbt_isa.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/x86/fbt_isa.c
diff -u src/external/cddl/osnet/dev/fbt/x86/fbt_isa.c:1.3 src/external/cddl/osnet/dev/fbt/x86/fbt_isa.c:1.4
--- src/external/cddl/osnet/dev/fbt/x86/fbt_isa.c:1.3	Sat May  2 07:37:17 2020
+++ src/external/cddl/osnet/dev/fbt/x86/fbt_isa.c	Wed Aug 11 07:16:49 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: fbt_isa.c,v 1.3 2020/05/02 11:37:17 maxv Exp $	*/
+/*	$NetBSD: fbt_isa.c,v 1.4 2021/08/11 11:16:49 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -251,8 +251,9 @@ fbt_provide_module_cb(const char *name, 
 	/*
 	 * Exclude some more symbols which can be called from probe context.
 	 */
-	if (strcmp(name, "x86_curcpu") == 0 ||
-	strcmp(name, "x86_curlwp") == 0) {
+	if (strncmp(name, "trap", 4) ||
+	strncmp(name, "x86_curcpu", 10) == 0 ||
+	strncmp(name, "x86_curlwp", 10) == 0) {
 		return 0;
 	}
 #endif



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

2021-07-25 Thread Nick Hudson
Module Name:src
Committed By:   skrll
Date:   Sun Jul 25 06:07:42 UTC 2021

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

Log Message:
KNF


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/sys/kern/opensolaris.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/opensolaris.c
diff -u src/external/cddl/osnet/sys/kern/opensolaris.c:1.2 src/external/cddl/osnet/sys/kern/opensolaris.c:1.3
--- src/external/cddl/osnet/sys/kern/opensolaris.c:1.2	Mon May 28 21:05:09 2018
+++ src/external/cddl/osnet/sys/kern/opensolaris.c	Sun Jul 25 06:07:42 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: opensolaris.c,v 1.2 2018/05/28 21:05:09 chs Exp $	*/
+/*	$NetBSD: opensolaris.c,v 1.3 2021/07/25 06:07:42 skrll Exp $	*/
 /*-
  * Copyright 2007 John Birrell 
  *
@@ -28,11 +28,12 @@
  */
 
 #include 
+#include 
 #include 
+
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 #include 



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

2021-07-18 Thread Frank Kardel
Module Name:src
Committed By:   kardel
Date:   Sun Jul 18 07:22:22 UTC 2021

Modified Files:
src/external/cddl/osnet/sys/sys: vnode.h

Log Message:
PR kern/56316: vn_open doesn't follow symlinks

remove setting of O_NOFOLLOW. restores ZFS being able
to open devices via symlinks again.


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/external/cddl/osnet/sys/sys/vnode.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/sys/sys/vnode.h
diff -u src/external/cddl/osnet/sys/sys/vnode.h:1.19 src/external/cddl/osnet/sys/sys/vnode.h:1.20
--- src/external/cddl/osnet/sys/sys/vnode.h:1.19	Tue Jun 29 22:40:53 2021
+++ src/external/cddl/osnet/sys/sys/vnode.h	Sun Jul 18 07:22:22 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: vnode.h,v 1.19 2021/06/29 22:40:53 dholland Exp $	*/
+/*	$NetBSD: vnode.h,v 1.20 2021/07/18 07:22:22 kardel Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -246,8 +246,6 @@ zfs_vn_open(const char *pnamep, enum uio
 	ASSERT(crwhy == CRCREAT);
 	ASSERT(umask == 0);
 
-	filemode |= O_NOFOLLOW;
-
 	pb = pathbuf_create(pnamep);
 	error = vn_open(NULL, pb, 0, filemode, createmode, vpp, NULL, NULL);
 	if (error == 0) {



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

2021-07-04 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Sun Jul  4 11:25:07 UTC 2021

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

Log Message:
Add VOP_PARSEPATH to zfs control dir vnode op table.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ctldir.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_ctldir.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ctldir.c:1.12 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ctldir.c:1.13
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ctldir.c:1.12	Sat May 16 18:31:46 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ctldir.c	Sun Jul  4 11:25:07 2021
@@ -1825,6 +1825,7 @@ sfs_print(void *v)
 
 const struct vnodeopv_entry_desc zfs_sfsop_entries[] = {
 	{ _default_desc,		vn_default_error },
+	{ _parsepath_desc,		genfs_parsepath },
 	{ _lookup_desc,		sfs_lookup },
 	{ _open_desc,		sfs_open },
 	{ _close_desc,		sfs_close },



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

2021-07-02 Thread David A. Holland
Module Name:src
Committed By:   dholland
Date:   Fri Jul  2 17:14:37 UTC 2021

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

Log Message:
Add VOP_PARSEPATH to zfs's vnode table. "oops"

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


To generate a diff of this commit:
cvs rdiff -u -r1.71 -r1.72 \
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.71 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.72
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.71	Sun Nov 15 00:54:13 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Fri Jul  2 17:14:36 2021
@@ -6347,6 +6347,7 @@ const struct genfs_ops zfs_genfsops = {
 int (**zfs_vnodeop_p)(void *);
 const struct vnodeopv_entry_desc zfs_vnodeop_entries[] = {
 	{ _default_desc,		vn_default_error },
+	{ _parsepath_desc,		genfs_parsepath },
 	{ _lookup_desc,		zfs_netbsd_lookup },
 	{ _create_desc,		zfs_netbsd_create },
 	{ _mknod_desc,		zfs_netbsd_mknod },



CVS commit: src/external/cddl/osnet/dist/common/nvpair

2021-05-21 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Fri May 21 17:32:49 UTC 2021

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

Log Message:
Replace the Solaris style endian check (exactly one of
_LITTLE_ENDIAN or _BIG_ENDIAN is defined) with standard check
"#if BYTE_ORDER == BIG_ENDIAN" like we do it elseware.

Should fix PR 56191 (ZFS tests fail on sparc64)


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/dist/common/nvpair/nvpair.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/common/nvpair/nvpair.c
diff -u src/external/cddl/osnet/dist/common/nvpair/nvpair.c:1.5 src/external/cddl/osnet/dist/common/nvpair/nvpair.c:1.6
--- src/external/cddl/osnet/dist/common/nvpair/nvpair.c:1.5	Mon Mar  2 15:45:33 2020
+++ src/external/cddl/osnet/dist/common/nvpair/nvpair.c	Fri May 21 17:32:49 2021
@@ -2255,11 +2255,11 @@ nvlist_common(nvlist_t *nvl, char *buf, 
 	int err = 0;
 	nvstream_t nvs;
 	int nvl_endian;
-#ifdef	_LITTLE_ENDIAN
-	int host_endian = 1;
-#else
+#if BYTE_ORDER == BIG_ENDIAN
 	int host_endian = 0;
-#endif	/* _LITTLE_ENDIAN */
+#else
+	int host_endian = 1;
+#endif	/* BYTE_ORDER */
 	nvs_header_t *nvh = (void *)buf;
 
 	if (buflen == NULL || nvl == NULL ||



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

2021-05-13 Thread Nia Alarie
Module Name:src
Committed By:   nia
Date:   Thu May 13 09:05:19 UTC 2021

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

Log Message:
this is not FreeBSD


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_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/lib/libzfs/common/libzfs_dataset.c
diff -u src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_dataset.c:1.4 src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_dataset.c:1.5
--- src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_dataset.c:1.4	Mon May 28 21:05:06 2018
+++ src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_dataset.c	Thu May 13 09:05:19 2021
@@ -1135,7 +1135,7 @@ badlabel:
 			m_label_free(new_sl);	/* OK if null */
 #else	/* !illumos */
 			zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
-			"mlslabel is not supported on FreeBSD"));
+			"mlslabel is not supported on NetBSD"));
 			(void) zfs_error(hdl, EZFS_BADPROP, errbuf);
 #endif	/* illumos */
 			goto error;
@@ -1644,7 +1644,7 @@ zfs_prop_set_list(zfs_handle_t *zhp, nvl
 		case ZFS_PROP_NBMAND:
 		case ZFS_PROP_MLSLABEL:
 			(void) snprintf(errbuf, sizeof (errbuf),
-			"property '%s' not supported on FreeBSD",
+			"property '%s' not supported on NetBSD",
 			nvpair_name(elem));
 			ret = zfs_error(hdl, EZFS_PERM, errbuf);
 			goto error;



CVS commit: src/external/cddl/osnet/dist/cmd/zfs

2021-05-13 Thread Nia Alarie
Module Name:src
Committed By:   nia
Date:   Thu May 13 09:03:35 UTC 2021

Modified Files:
src/external/cddl/osnet/dist/cmd/zfs: zfs_main.c

Log Message:
zfs: this is not FreeBSD


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/external/cddl/osnet/dist/cmd/zfs/zfs_main.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/cmd/zfs/zfs_main.c
diff -u src/external/cddl/osnet/dist/cmd/zfs/zfs_main.c:1.7 src/external/cddl/osnet/dist/cmd/zfs/zfs_main.c:1.8
--- src/external/cddl/osnet/dist/cmd/zfs/zfs_main.c:1.7	Sun Sep 15 19:38:09 2019
+++ src/external/cddl/osnet/dist/cmd/zfs/zfs_main.c	Thu May 13 09:03:35 2021
@@ -6130,7 +6130,7 @@ share_mount(int op, int argc, char **arg
 			break;
 
 		case 'O':
-			warnx("no overlay mounts support on FreeBSD, ignoring");
+			warnx("no overlay mounts support on NetBSD, ignoring");
 			break;
 		case ':':
 			(void) fprintf(stderr, gettext("missing argument for "



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

2021-04-30 Thread Nia Alarie
Module Name:src
Committed By:   nia
Date:   Fri Apr 30 18:59:31 UTC 2021

Modified Files:
src/external/cddl/osnet/dist/cmd/zfs: zfs.8
src/external/cddl/osnet/dist/cmd/zpool: zpool.8

Log Message:
zfs: Fix up references to FreeBSD


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/dist/cmd/zfs/zfs.8
cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/dist/cmd/zpool/zpool.8

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/cmd/zfs/zfs.8
diff -u src/external/cddl/osnet/dist/cmd/zfs/zfs.8:1.1 src/external/cddl/osnet/dist/cmd/zfs/zfs.8:1.2
--- src/external/cddl/osnet/dist/cmd/zfs/zfs.8:1.1	Mon Jun 24 08:27:20 2019
+++ src/external/cddl/osnet/dist/cmd/zfs/zfs.8	Fri Apr 30 18:59:30 2021
@@ -285,12 +285,6 @@
 .Op Fl FHt
 .Ar snapshot
 .Op Ar snapshot Ns | Ns Ar filesystem
-.Nm
-.Cm jail
-.Ar jailid Ns | Ns Ar jailname filesystem
-.Nm
-.Cm unjail
-.Ar jailid Ns | Ns Ar jailname filesystem
 .Sh DESCRIPTION
 The
 .Nm
@@ -445,32 +439,6 @@ If a file system's mount point is set to
 .Tn ZFS
 makes no attempt to manage the file system, and the administrator is
 responsible for mounting and unmounting the file system.
-.Ss Jails
-.No A Tn ZFS
-dataset can be attached to a jail by using the
-.Qq Nm Cm jail
-subcommand. You cannot attach a dataset to one jail and the children of the
-same dataset to another jails. To allow management of the dataset from within
-a jail, the
-.Sy jailed
-property has to be set and the jail needs access to the
-.Pa /dev/zfs
-device. The
-.Sy quota
-property cannot be changed from within a jail. See
-.Xr jail 8
-for information on how to allow mounting
-.Tn ZFS
-datasets from within a jail.
-.Pp
-.No A Tn ZFS
-dataset can be detached from a jail using the
-.Qq Nm Cm unjail
-subcommand.
-.Pp
-After a dataset is attached to a jail and the jailed property is set, a jailed
-file system cannot be mounted outside the jail, since the jail administrator
-might have set the mount point to an unacceptable value.
 .Ss Deduplication
 Deduplication is the process for removing redundant data at the block-level,
 reducing the total amount of data stored. If a file system has the
@@ -1070,7 +1038,7 @@ signature to make sure the block content
 The
 .Sy devices
 property is currently not supported on
-.Fx .
+.Nx .
 .It Sy exec Ns = Ns Cm on | off
 Controls whether processes can be executed from within this file system. The
 default value is
@@ -1079,7 +1047,7 @@ default value is
 The
 .Sy mlslabel
 property is currently not supported on
-.Fx .
+.Nx .
 .It Sy filesystem_limit Ns = Ns Ar count | Cm none
 Limits the number of filesystems and volumes that can exist under this point in
 the dataset tree.
@@ -1118,7 +1086,7 @@ shared file systems are unshared and sha
 The
 .Sy nbmand
 property is currently not supported on
-.Fx .
+.Nx .
 .It Sy primarycache Ns = Ns Cm all | none | metadata
 Controls what is cached in the primary cache (ARC). If this property is set to
 .Cm all ,
@@ -1343,7 +1311,7 @@ bit is respected for the file system. Th
 The
 .Sy sharesmb
 property currently has no effect on
-.Fx .
+.Nx .
 .It Sy sharenfs Ns = Ns Cm on | off | Ar opts
 Controls whether the file system is shared via
 .Tn NFS ,
@@ -1493,17 +1461,12 @@ during volume creation and pool import.
 The
 .Sy vscan
 property is currently not supported on
-.Fx .
+.Nx .
 .It Sy xattr Ns = Ns Cm off | on
 The
 .Sy xattr
 property is currently not supported on
-.Fx .
-.It Sy jailed Ns = Ns Cm off | on
-Controls whether the dataset is managed from a jail. See the
-.Qq Sx Jails
-section for more information. The default value is
-.Cm off .
+.Nx .
 .El
 .Pp
 The following three properties cannot be changed after the file system is
@@ -2360,7 +2323,7 @@ The default is
 The default can be changed to include group types.
 .It Fl i
 Translate SID to POSIX ID. This flag currently has no effect on
-.Fx .
+.Nx .
 .El
 .It Xo
 .Nm
@@ -2405,7 +2368,7 @@ file systems.
 Report mount progress.
 .It Fl O
 Perform an overlay mount. Overlay mounts are not supported on
-.Fx .
+.Nx .
 .It Fl o Ar property Ns Oo , Ns Ar property Oc Ns ...
 An optional, comma-separated list of mount options to use temporarily for the
 duration of the mount. See the
@@ -2416,7 +2379,7 @@ Mount all available
 .Tn ZFS
 file systems.
 This command may be executed on
-.Fx
+.Nx
 system startup by
 .Pa /etc/rc.d/zfs .
 For more information, see variable
@@ -2467,7 +2430,7 @@ file systems that have the
 .Sy sharenfs
 property set.
 This command may be executed on
-.Fx
+.Nx
 system startup by
 .Pa /etc/rc.d/zfs .
 For more information, see variable
@@ -2500,7 +2463,7 @@ file systems that have the
 .Sy sharenfs
 property set.
 This command may be executed on
-.Fx
+.Nx
 system shutdown by
 .Pa /etc/rc.d/zfs .
 For more information, see variable
@@ -3034,7 +2997,6 @@ protocol
 .It exec Ta property
 .It filesystem_limit Ta 

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

2021-04-21 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Wed Apr 21 10:02:34 UTC 2021

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

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


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

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

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.19 src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.20
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.19	Thu Jun 11 19:20:42 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c	Wed Apr 21 10:02:34 2021
@@ -7246,8 +7246,15 @@ l2arc_feed_thread(void *dummy __unused)
 
 	while (l2arc_thread_exit == 0) {
 		CALLB_CPR_SAFE_BEGIN();
+#ifdef __NetBSD__
+		clock_t now = ddi_get_lbolt();
+		if (next > now)
+			(void) cv_timedwait(_feed_thr_cv,
+			_feed_thr_lock, next - now);
+#else
 		(void) cv_timedwait(_feed_thr_cv, _feed_thr_lock,
 		next - ddi_get_lbolt());
+#endif
 		CALLB_CPR_SAFE_END(, _feed_thr_lock);
 		next = ddi_get_lbolt() + hz;
 



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

2021-04-15 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Apr 15 07:00:50 UTC 2021

Modified Files:
src/external/cddl/osnet/sys/sys: opentypes.h

Log Message:
avoid second typedef for boolean_t in kernel code originally defined in



To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/sys/sys/opentypes.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/sys/sys/opentypes.h
diff -u src/external/cddl/osnet/sys/sys/opentypes.h:1.5 src/external/cddl/osnet/sys/sys/opentypes.h:1.6
--- src/external/cddl/osnet/sys/sys/opentypes.h:1.5	Wed Dec  4 22:21:42 2019
+++ src/external/cddl/osnet/sys/sys/opentypes.h	Thu Apr 15 03:00:50 2021
@@ -36,7 +36,9 @@ typedef id_t		ctid_t;
 
 #define	B_FALSE	0
 #define	B_TRUE	1
+#ifndef _KERNEL
 typedef int		boolean_t;
+#endif
 
 #ifndef __defined_hr_t
 #define __defined_hr_t



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

2021-04-15 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Apr 15 06:59:57 UTC 2021

Modified Files:
src/external/cddl/osnet/sys/sys: vnode.h

Log Message:
remove extra typedef for vnode_t done in 


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/external/cddl/osnet/sys/sys/vnode.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/sys/sys/vnode.h
diff -u src/external/cddl/osnet/sys/sys/vnode.h:1.17 src/external/cddl/osnet/sys/sys/vnode.h:1.18
--- src/external/cddl/osnet/sys/sys/vnode.h:1.17	Tue May 26 04:39:27 2020
+++ src/external/cddl/osnet/sys/sys/vnode.h	Thu Apr 15 02:59:57 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: vnode.h,v 1.17 2020/05/26 08:39:27 hannken Exp $	*/
+/*	$NetBSD: vnode.h,v 1.18 2021/04/15 06:59:57 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -99,10 +99,7 @@
 
 #ifdef _KERNEL
 
-struct vnode;
 struct vattr;
-
-typedef	struct vnode	vnode_t;
 typedef	struct vattr	vattr_t;
 typedef enum vtype vtype_t;
 



CVS commit: src/external/cddl/osnet/usr.bin/ctfconvert

2021-04-13 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Tue Apr 13 09:28:42 UTC 2021

Modified Files:
src/external/cddl/osnet/usr.bin/ctfconvert: Makefile

Log Message:
ignore a "should be impossible" uninitialised variable error.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/external/cddl/osnet/usr.bin/ctfconvert/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/usr.bin/ctfconvert/Makefile
diff -u src/external/cddl/osnet/usr.bin/ctfconvert/Makefile:1.9 src/external/cddl/osnet/usr.bin/ctfconvert/Makefile:1.10
--- src/external/cddl/osnet/usr.bin/ctfconvert/Makefile:1.9	Sun Feb  9 07:55:13 2020
+++ src/external/cddl/osnet/usr.bin/ctfconvert/Makefile	Tue Apr 13 09:28:42 2021
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.9 2020/02/09 07:55:13 fox Exp $
+#	$NetBSD: Makefile,v 1.10 2021/04/13 09:28:42 mrg Exp $
 
 # $FreeBSD: head/cddl/usr.bin/ctfconvert/Makefile 314654 2017-03-04 11:30:04Z ngie $
 
@@ -37,5 +37,6 @@ SRCS=		alist.c \
 COPTS.dwarf.c +=	${GCC_NO_STRINGOP_TRUNCATION}
 COPTS.st_parse.c +=	-Wno-format-nonliteral
 COPTS.util.c +=		-Wno-format-nonliteral
+COPTS.st_parse.c +=	${GCC_NO_MAYBE_UNINITIALIZED}
 
 .include 



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

2021-04-13 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Tue Apr 13 09:20:55 UTC 2021

Modified Files:
src/external/cddl/osnet/lib/libdtrace: Makefile

Log Message:
XXX: ignore warning about overlapping buffers for sprintf().


To generate a diff of this commit:
cvs rdiff -u -r1.29 -r1.30 src/external/cddl/osnet/lib/libdtrace/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/lib/libdtrace/Makefile
diff -u src/external/cddl/osnet/lib/libdtrace/Makefile:1.29 src/external/cddl/osnet/lib/libdtrace/Makefile:1.30
--- src/external/cddl/osnet/lib/libdtrace/Makefile:1.29	Mon Mar 29 05:18:02 2021
+++ src/external/cddl/osnet/lib/libdtrace/Makefile	Tue Apr 13 09:20:55 2021
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.29 2021/03/29 05:18:02 simonb Exp $
+#	$NetBSD: Makefile,v 1.30 2021/04/13 09:20:55 mrg Exp $
 
 # $FreeBSD: head/cddl/lib/libdtrace/Makefile 314654 2017-03-04 11:30:04Z ngie $
 
@@ -145,4 +145,6 @@ beforedepend:	dt_errtags.c dt_names.c
 
 LIBDPLIBS=	proc	${NETBSDSRCDIR}/external/bsd/libproc/lib
 
+COPTS.dt_link.c+=	${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 10:? -Wno-restrict :}
+
 .include 



CVS commit: src/external/cddl/osnet

2021-04-12 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Tue Apr 13 04:52:01 UTC 2021

Modified Files:
src/external/cddl/osnet: Makefile.inc Makefile.zfs

Log Message:
use -fcommon here.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/Makefile.inc
cvs rdiff -u -r1.9 -r1.10 src/external/cddl/osnet/Makefile.zfs

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/Makefile.inc
diff -u src/external/cddl/osnet/Makefile.inc:1.5 src/external/cddl/osnet/Makefile.inc:1.6
--- src/external/cddl/osnet/Makefile.inc:1.5	Sat Jun 29 20:50:01 2019
+++ src/external/cddl/osnet/Makefile.inc	Tue Apr 13 04:52:00 2021
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.5 2019/06/29 20:50:01 sevan Exp $
+# $NetBSD: Makefile.inc,v 1.6 2021/04/13 04:52:00 mrg Exp $
 # $FreeBSD: head/cddl/Makefile.inc 270358 2014-08-22 20:04:51Z delphij $
 
 WARNS?=5
@@ -9,3 +9,5 @@ OPENSOLARIS_USR_DISTDIR=${OSNETDIR}/dist
 OPENSOLARIS_SYS_DISTDIR=${OSNETDIR}/dist
 
 CPPFLAGS+=-Wno-unknown-pragmas -Wno-sign-compare -D_KERNTYPES
+
+COPTS+=	-fcommon

Index: src/external/cddl/osnet/Makefile.zfs
diff -u src/external/cddl/osnet/Makefile.zfs:1.9 src/external/cddl/osnet/Makefile.zfs:1.10
--- src/external/cddl/osnet/Makefile.zfs:1.9	Sat Jun 22 09:48:39 2019
+++ src/external/cddl/osnet/Makefile.zfs	Tue Apr 13 04:52:00 2021
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.zfs,v 1.9 2019/06/22 09:48:39 hannken Exp $
+#	$NetBSD: Makefile.zfs,v 1.10 2021/04/13 04:52:00 mrg Exp $
 
 .include 
 
@@ -56,3 +56,5 @@ LIBUUTIL_SRCDIR= ${ZFSDIR}/lib/libuutil
 LIBZFS_SRCDIR= ${ZFSDIR}/lib/libzfs
 LIBZFS_CORE_SRCDIR= ${ZFSDIR}/lib/libzfs_core
 LIBZPOOL_SRCDIR= ${ZFSDIR}/lib/libzpool
+
+COPTS+=	-fcommon



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

2021-04-06 Thread Simon Burge
Module Name:src
Committed By:   simonb
Date:   Wed Apr  7 01:54:32 UTC 2021

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

Log Message:
Use NAL (nop-and-link) to get the current PC.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/dev/dtrace/mips/dtrace_isa.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/mips/dtrace_isa.c
diff -u src/external/cddl/osnet/dev/dtrace/mips/dtrace_isa.c:1.1 src/external/cddl/osnet/dev/dtrace/mips/dtrace_isa.c:1.2
--- src/external/cddl/osnet/dev/dtrace/mips/dtrace_isa.c:1.1	Mon Mar 29 05:17:09 2021
+++ src/external/cddl/osnet/dev/dtrace/mips/dtrace_isa.c	Wed Apr  7 01:54:31 2021
@@ -107,9 +107,8 @@ dtrace_getpcstack(pc_t *pcstack, int pcs
 	ra = (register_t)(intptr_t)__builtin_return_address(0);
 
	__asm __volatile(
-		"jal 99f\n"
-		"nop\n"
-		"99:\n"
+		"nal\n"
+		" nop\n"
 		"move %0, $31\n" /* get ra */
 		"move $31, %1\n" /* restore ra */
 		: "=r" (pc)



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

2021-04-06 Thread Simon Burge
Module Name:src
Committed By:   simonb
Date:   Tue Apr  6 12:48:59 UTC 2021

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

Log Message:
sizeof(*var) instead of sizeof(type)


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 \
src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c
cvs rdiff -u -r1.12 -r1.13 \
src/external/cddl/osnet/dev/dtrace/i386/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.14 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.15
--- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.14	Fri Nov  8 11:06:21 2019
+++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c	Tue Apr  6 12:48:59 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_subr.c,v 1.14 2019/11/08 11:06:21 hannken Exp $	*/
+/*	$NetBSD: dtrace_subr.c,v 1.15 2021/04/06 12:48:59 simonb Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -78,7 +78,7 @@ dtrace_invop_add(int (*func)(uintptr_t, 
 {
 	dtrace_invop_hdlr_t *hdlr;
 
-	hdlr = kmem_alloc(sizeof (dtrace_invop_hdlr_t), KM_SLEEP);
+	hdlr = kmem_alloc(sizeof(*hdlr), KM_SLEEP);
 	hdlr->dtih_func = func;
 	hdlr->dtih_next = dtrace_invop_hdlr;
 	dtrace_invop_hdlr = hdlr;
@@ -108,7 +108,7 @@ dtrace_invop_remove(int (*func)(uintptr_
 		prev->dtih_next = hdlr->dtih_next;
 	}
 
-	kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t));
+	kmem_free(hdlr, sizeof(*hdlr));
 }
 
 /*ARGSUSED*/

Index: src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c:1.4 src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c:1.5
--- src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c:1.4	Mon May 28 21:05:03 2018
+++ src/external/cddl/osnet/dev/dtrace/arm/dtrace_subr.c	Tue Apr  6 12:48:59 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_subr.c,v 1.4 2018/05/28 21:05:03 chs Exp $	*/
+/*	$NetBSD: dtrace_subr.c,v 1.5 2021/04/06 12:48:59 simonb Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -94,7 +94,7 @@ dtrace_invop_add(int (*func)(uintptr_t, 
 {
 	dtrace_invop_hdlr_t *hdlr;
 
-	hdlr = kmem_alloc(sizeof (dtrace_invop_hdlr_t), KM_SLEEP);
+	hdlr = kmem_alloc(sizeof(*hdlr), KM_SLEEP);
 	hdlr->dtih_func = func;
 	hdlr->dtih_next = dtrace_invop_hdlr;
 	dtrace_invop_hdlr = hdlr;
@@ -124,7 +124,7 @@ dtrace_invop_remove(int (*func)(uintptr_
 		prev->dtih_next = hdlr->dtih_next;
 	}
 
-	kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t));
+	kmem_free(hdlr, sizeof(*hdlr));
 }
 
 /*ARGSUSED*/

Index: src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.12 src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.13
--- src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.12	Wed Feb 13 08:46:40 2019
+++ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c	Tue Apr  6 12:48:59 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: dtrace_subr.c,v 1.12 2019/02/13 08:46:40 rin Exp $	*/
+/*	$NetBSD: dtrace_subr.c,v 1.13 2021/04/06 12:48:59 simonb Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -86,7 +86,7 @@ dtrace_invop_add(int (*func)(uintptr_t, 
 {
 	dtrace_invop_hdlr_t *hdlr;
 
-	hdlr = kmem_alloc(sizeof (dtrace_invop_hdlr_t), KM_SLEEP);
+	hdlr = kmem_alloc(sizeof(*hdlr), KM_SLEEP);
 	hdlr->dtih_func = func;
 	hdlr->dtih_next = dtrace_invop_hdlr;
 	dtrace_invop_hdlr = hdlr;
@@ -116,7 +116,7 @@ dtrace_invop_remove(int (*func)(uintptr_
 		prev->dtih_next = hdlr->dtih_next;
 	}
 
-	kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t));
+	kmem_free(hdlr, sizeof(*hdlr));
 }
 
 void



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

2021-04-06 Thread Simon Burge
Module Name:src
Committed By:   simonb
Date:   Tue Apr  6 12:48:36 UTC 2021

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

Log Message:
sizeof(*var) instead of sizeof(type)
Call kmem_free() with size of data being freed.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/external/cddl/osnet/dev/dtrace/aarch64/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/aarch64/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.4 src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.5
--- src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.4	Thu Nov 12 02:15:56 2020
+++ src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c	Tue Apr  6 12:48:36 2021
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.4 2020/11/12 02:15:56 rin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.5 2021/04/06 12:48:36 simonb Exp $");
 
 #include 
 #include 
@@ -87,7 +87,7 @@ dtrace_invop_add(int (*func)(uintptr_t, 
 {
 	dtrace_invop_hdlr_t *hdlr;
 
-	hdlr = kmem_alloc(sizeof (dtrace_invop_hdlr_t), KM_SLEEP);
+	hdlr = kmem_alloc(sizeof(*hdlr), KM_SLEEP);
 	hdlr->dtih_func = func;
 	hdlr->dtih_next = dtrace_invop_hdlr;
 	dtrace_invop_hdlr = hdlr;
@@ -120,7 +120,7 @@ dtrace_invop_remove(int (*func)(uintptr_
 		prev->dtih_next = hdlr->dtih_next;
 	}
 
-	kmem_free(hdlr, 0);
+	kmem_free(hdlr, sizeof(*hdlr));
 }
 
 /*ARGSUSED*/



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

2021-04-06 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Tue Apr  6 12:10:21 UTC 2021

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

Log Message:
sizeof(*var) instead of sizeof(type)


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/external/cddl/osnet/dev/dtrace/mips/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/mips/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c:1.2 src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c:1.3
--- src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c:1.2	Tue Apr  6 04:19:15 2021
+++ src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c	Tue Apr  6 08:10:21 2021
@@ -88,7 +88,7 @@ dtrace_invop_add(int (*func)(uintptr_t, 
 {
 	dtrace_invop_hdlr_t *hdlr;
 
-	hdlr = kmem_alloc(sizeof (dtrace_invop_hdlr_t), KM_SLEEP);
+	hdlr = kmem_alloc(sizeof(*hdlr), KM_SLEEP);
 	hdlr->dtih_func = func;
 	hdlr->dtih_next = dtrace_invop_hdlr;
 	dtrace_invop_hdlr = hdlr;
@@ -121,7 +121,7 @@ dtrace_invop_remove(int (*func)(uintptr_
 		prev->dtih_next = hdlr->dtih_next;
 	}
 
-	kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t));
+	kmem_free(hdlr, sizeof(*hdlr));
 }
 
 /*ARGSUSED*/



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

2021-04-06 Thread Simon Burge
Module Name:src
Committed By:   simonb
Date:   Tue Apr  6 08:19:15 UTC 2021

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

Log Message:
Call kmem_free() with the size of the thing we are freeing.  Fixes panic
when unloading the ktrace module on MIPS.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/external/cddl/osnet/dev/dtrace/mips/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/mips/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c:1.1 src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c:1.2
--- src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c:1.1	Mon Mar 29 05:17:09 2021
+++ src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c	Tue Apr  6 08:19:15 2021
@@ -121,7 +121,7 @@ dtrace_invop_remove(int (*func)(uintptr_
 		prev->dtih_next = hdlr->dtih_next;
 	}
 
-	kmem_free(hdlr, 0);
+	kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t));
 }
 
 /*ARGSUSED*/



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

2021-03-31 Thread Simon Burge
Module Name:src
Committed By:   simonb
Date:   Wed Mar 31 06:27:58 UTC 2021

Modified Files:
src/external/cddl/osnet/sbin/zfs: Makefile
src/external/cddl/osnet/sbin/zpool: Makefile

Log Message:
Use compat/exec.mk - zfs isn't compat32 friendly (yet?).


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/sbin/zfs/Makefile
cvs rdiff -u -r1.6 -r1.7 src/external/cddl/osnet/sbin/zpool/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/sbin/zfs/Makefile
diff -u src/external/cddl/osnet/sbin/zfs/Makefile:1.5 src/external/cddl/osnet/sbin/zfs/Makefile:1.6
--- src/external/cddl/osnet/sbin/zfs/Makefile:1.5	Sun Sep 15 19:38:09 2019
+++ src/external/cddl/osnet/sbin/zfs/Makefile	Wed Mar 31 06:27:58 2021
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.5 2019/09/15 19:38:09 brad Exp $
+#	$NetBSD: Makefile,v 1.6 2021/03/31 06:27:58 simonb Exp $
 
 .include "../../Makefile.zfs"
 
@@ -30,4 +30,6 @@ LDADD+= -lm -lutil -lpthread
 .PATH: ${.CURDIR}
 .PATH: ${ZFSDIR}/dist/cmd/zfs
 
+.include "../../compat/exec.mk"
+
 .include 

Index: src/external/cddl/osnet/sbin/zpool/Makefile
diff -u src/external/cddl/osnet/sbin/zpool/Makefile:1.6 src/external/cddl/osnet/sbin/zpool/Makefile:1.7
--- src/external/cddl/osnet/sbin/zpool/Makefile:1.6	Mon May 28 21:05:09 2018
+++ src/external/cddl/osnet/sbin/zpool/Makefile	Wed Mar 31 06:27:58 2021
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.6 2018/05/28 21:05:09 chs Exp $
+#	$NetBSD: Makefile,v 1.7 2021/03/31 06:27:58 simonb Exp $
 
 .include "../../Makefile.zfs"
 
@@ -36,4 +36,6 @@ LDADD+= -lm -lutil -lpthread
 
 .PATH: ${ZFSDIR}/dist/cmd/zpool
 
+.include "../../compat/exec.mk"
+
 .include 



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

2021-03-31 Thread Simon Burge
Module Name:src
Committed By:   simonb
Date:   Wed Mar 31 06:26:27 UTC 2021

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

Log Message:
Simplify the CTF float encoding type logic: all floating point types of
4 bytes or less are "float", 8 bytes or less are "double" and 16 bytes
or less are "long double".  Make ctfconvert much happier with N32 ABI
where we have 4 byte pointers and 16 byte long doubles.  Will also help
ctfconvert if ever used on m68k or 32-bit RISC-V.

@christos: LGTM


To generate a diff of this commit:
cvs rdiff -u -r1.25 -r1.26 src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.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/dwarf.c
diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c:1.25 src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c:1.26
--- src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c:1.25	Mon May 28 21:05:06 2018
+++ src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c	Wed Mar 31 06:26:27 2021
@@ -1419,41 +1419,53 @@ die_base_name_parse(const char *name, ch
 	return (intr);
 }
 
+/*
+ * Return the CTF float encoding type.  The logic is all floating
+ * point types of 4 bytes or less are "float", 8 bytes or less are
+ * "double" and 16 bytes or less are "long double".  Anything bigger
+ * will error.
+ */
+#define	FLOAT_SIZE_SINGLE	 4
+#define	FLOAT_SIZE_DOUBLE	 8
+#define	FLOAT_SIZE_LONG_DOUBLE	16
+
 typedef struct fp_size_map {
-	size_t fsm_typesz[2];	/* size of {32,64} type */
+	size_t fsm_typesz;	/* size of type */
 	uint_t fsm_enc[3];	/* CTF_FP_* for {bare,cplx,imagry} type */
 } fp_size_map_t;
 
 static const fp_size_map_t fp_encodings[] = {
-	{ { 4, 4 }, { CTF_FP_SINGLE, CTF_FP_CPLX, CTF_FP_IMAGRY } },
-	{ { 8, 8 }, { CTF_FP_DOUBLE, CTF_FP_DCPLX, CTF_FP_DIMAGRY } },
-#ifdef __sparc
-	{ { 16, 16 }, { CTF_FP_LDOUBLE, CTF_FP_LDCPLX, CTF_FP_LDIMAGRY } },
-#else
-	{ { 12, 16 }, { CTF_FP_LDOUBLE, CTF_FP_LDCPLX, CTF_FP_LDIMAGRY } },
-#endif
-	{ { 0, 0 }, { 0, 0, 0 } }
+	{ FLOAT_SIZE_SINGLE, { CTF_FP_SINGLE, CTF_FP_CPLX, CTF_FP_IMAGRY } },
+	{ FLOAT_SIZE_DOUBLE, { CTF_FP_DOUBLE, CTF_FP_DCPLX, CTF_FP_DIMAGRY } },
+	{ FLOAT_SIZE_LONG_DOUBLE,
+	{ CTF_FP_LDOUBLE, CTF_FP_LDCPLX, CTF_FP_LDIMAGRY } },
+	{ 0, { 0, 0, 0 } }
 };
 
 static uint_t
 die_base_type2enc(dwarf_t *dw, Dwarf_Off off, Dwarf_Signed enc, size_t sz)
 {
 	const fp_size_map_t *map = fp_encodings;
-	uint_t szidx = dw->dw_ptrsz == sizeof (uint64_t);
 	uint_t mult = 1, col = 0;
 
-	if (enc == DW_ATE_complex_float) {
+	switch (enc) {
+	case DW_ATE_complex_float:
+#if defined(DW_ATE_SUN_interval_float)
+	case DW_ATE_SUN_interval_float:
+#endif
 		mult = 2;
 		col = 1;
-	} else if (enc == DW_ATE_imaginary_float
-#if defined(sun)
-	|| enc == DW_ATE_SUN_imaginary_float
+		break;
+	case DW_ATE_imaginary_float:
+#if defined(DW_ATE_SUN_imaginary_float)
+	case DW_ATE_SUN_imaginary_float:
 #endif
-	)
 		col = 2;
+		break;
+	}
 
-	while (map->fsm_typesz[szidx] != 0) {
-		if (map->fsm_typesz[szidx] * mult == sz)
+	while (map->fsm_typesz != 0) {
+		if (sz <= map->fsm_typesz * mult)
 			return (map->fsm_enc[col]);
 		map++;
 	}



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

2021-03-28 Thread Simon Burge
Module Name:src
Committed By:   simonb
Date:   Mon Mar 29 05:18:02 UTC 2021

Modified Files:
src/external/cddl/osnet/lib/libdtrace: Makefile

Log Message:
Compile MIPS specific code.


To generate a diff of this commit:
cvs rdiff -u -r1.28 -r1.29 src/external/cddl/osnet/lib/libdtrace/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/lib/libdtrace/Makefile
diff -u src/external/cddl/osnet/lib/libdtrace/Makefile:1.28 src/external/cddl/osnet/lib/libdtrace/Makefile:1.29
--- src/external/cddl/osnet/lib/libdtrace/Makefile:1.28	Tue Mar 17 01:36:29 2020
+++ src/external/cddl/osnet/lib/libdtrace/Makefile	Mon Mar 29 05:18:02 2021
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.28 2020/03/17 01:36:29 fox Exp $
+#	$NetBSD: Makefile,v 1.29 2021/03/29 05:18:02 simonb Exp $
 
 # $FreeBSD: head/cddl/lib/libdtrace/Makefile 314654 2017-03-04 11:30:04Z ngie $
 
@@ -115,6 +115,9 @@ CPPFLAGS+=	-I${OPENSOLARIS_SYS_DISTDIR}/
 .elif ${MACHINE_CPU} == "arm"
 CPPFLAGS+=	-I${OPENSOLARIS_SYS_DISTDIR}/uts/arm
 .PATH:		${.CURDIR}/../../dist/lib/libdtrace/arm
+.elif ${MACHINE_CPU} == "mips"
+CPPFLAGS+=	-I${OPENSOLARIS_SYS_DISTDIR}/uts/mips
+.PATH:		${.CURDIR}/../../dist/lib/libdtrace/mips
 .endif
 COPTS.dt_link.c		+= ${GCC_NO_FORMAT_TRUNCATION}
 



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

2021-03-28 Thread Simon Burge
Module Name:src
Committed By:   simonb
Date:   Mon Mar 29 05:17:09 UTC 2021

Added Files:
src/external/cddl/osnet/dev/dtrace/mips: dtrace_asm.S dtrace_isa.c
dtrace_subr.c regset.h
src/external/cddl/osnet/dev/fbt/mips: fbt_isa.c fbt_isa.h

Log Message:
Work in progress dtrace for MIPS.  MIPS support mostly copied from
FreeBSD, with NetBSD-specific changes largely based on aarch64 dtrace
support.  Working well enough for system call tracing.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/dev/dtrace/mips/dtrace_asm.S \
src/external/cddl/osnet/dev/dtrace/mips/dtrace_isa.c \
src/external/cddl/osnet/dev/dtrace/mips/dtrace_subr.c \
src/external/cddl/osnet/dev/dtrace/mips/regset.h
cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/dev/fbt/mips/fbt_isa.c \
src/external/cddl/osnet/dev/fbt/mips/fbt_isa.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/dev/dtrace/mips/dtrace_asm.S
diff -u /dev/null src/external/cddl/osnet/dev/dtrace/mips/dtrace_asm.S:1.1
--- /dev/null	Mon Mar 29 05:17:09 2021
+++ src/external/cddl/osnet/dev/dtrace/mips/dtrace_asm.S	Mon Mar 29 05:17:09 2021
@@ -0,0 +1,233 @@
+/*
+ * 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.
+ *
+ * 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
+ *
+ * $FreeBSD$
+ */
+/*
+ * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#define _ASM
+#define _LOCORE
+
+#include 
+#include 
+
+#include 
+#include 
+#include 
+
+.setnoreorder   # Noreorder is default style!
+
+/*
+ * Primitives
+ */
+
+.text
+
+/*
+void dtrace_membar_producer(void)
+*/
+LEAF(dtrace_membar_producer)
+	j	ra
+	nop
+END(dtrace_membar_producer)
+
+/*
+void dtrace_membar_consumer(void)
+*/
+LEAF(dtrace_membar_consumer)
+	j	ra
+	nop
+END(dtrace_membar_consumer)
+
+/*
+dtrace_icookie_t dtrace_interrupt_disable(void)
+*/
+LEAF(dtrace_interrupt_disable)
+	mfc0	t0, MIPS_COP_0_STATUS
+	move	v0, t0
+	and	v0, v0, MIPS_SR_INT_IE
+	and	t0, t0, ~MIPS_SR_INT_IE
+	mtc0	t0, MIPS_COP_0_STATUS
+	j	ra
+	nop
+END(dtrace_interrupt_disable)
+
+/*
+void dtrace_interrupt_enable(dtrace_icookie_t cookie)
+*/
+LEAF(dtrace_interrupt_enable)
+	mfc0	t0, MIPS_COP_0_STATUS
+	beqz	a0, not_enabled
+	or	t0, t0, MIPS_SR_INT_IE
+	mtc0	t0, MIPS_COP_0_STATUS
+not_enabled:
+	j	ra
+	nop
+END(dtrace_interrupt_enable)
+
+/*
+uint32_t dtrace_cas32(uint32_t *target, uint32_t cmp, uint32_t new)
+*/
+LEAF(dtrace_cas32)
+1:
+	move	t1, a2
+	ll	t0, 0(a0)
+	bne	t0, a1, 2f
+	nop
+	sc	t1, 0(a0)
+	beqz	t1, 1b
+	nop
+2:	move	v0, t0
+	j	ra
+	nop
+END(dtrace_cas32)
+
+/*
+void *
+dtrace_casptr(void *target, void *cmp, void *new)
+*/
+LEAF(dtrace_casptr)
+1:
+	move	t1, a2
+	PTR_LL	t0, 0(a0)
+	bne	t0, a1, 2f
+	nop
+	PTR_SC	t1, 0(a0)
+	beqz	t1, 1b
+	nop
+2:	move	v0, t0
+	j	ra
+	nop
+END(dtrace_casptr)
+
+
+/*
+uintptr_t
+dtrace_fulword(void *addr)
+*/
+LEAF(dtrace_fulword)
+END(dtrace_fulword)
+
+/*
+uint8_t
+dtrace_fuword8_nocheck(void *addr)
+*/
+LEAF(dtrace_fuword8_nocheck)
+	lbu	v0, 0(a0)
+	j	ra
+	nop
+END(dtrace_fuword8_nocheck)
+
+/*
+uint16_t
+dtrace_fuword16_nocheck(void *addr)
+*/
+LEAF(dtrace_fuword16_nocheck)
+	lhu	v0, 0(a0)
+	j	ra
+	nop
+END(dtrace_fuword16_nocheck)
+
+/*
+uint32_t
+dtrace_fuword32_nocheck(void *addr)
+*/
+LEAF(dtrace_fuword32_nocheck)
+	lw	v0, 0(a0)
+	j	ra
+	nop
+END(dtrace_fuword32_nocheck)
+
+/*
+uint64_t
+dtrace_fuword64_nocheck(void *addr)
+*/
+LEAF(dtrace_fuword64_nocheck)
+#if defined(__mips_n64) || defined(__mips_n32)
+	ld	v0, 0(a0)
+#else
+	lw	v1,4(a0)
+	lw	v0,0(a0)
+#endif
+	j	ra
+	nop
+END(dtrace_fuword64_nocheck)
+
+/*
+XXX: unoptimized
+void
+dtrace_copy(uintptr_t src, uintptr_t dest, size_t size)
+*/
+LEAF(dtrace_copy)
+1:
+	beqz	a2, 2f
+	nop
+	lbu	t0, 0(a0)
+	sb	t0, 0(a1)
+	PTR_ADDU	a0, a0, 1
+	PTR_ADDU	a1, a1, 1
+	INT_SUBU	a2, a2, 1
+	j	1b
+	nop
+2:
+	j	ra
+	nop
+END(dtrace_copy)
+
+/*
+XXX: Unoptimized. Check for flags on page boundaries only(?)
+void
+dtrace_copystr(uintptr_t uaddr, uintptr_t kaddr, size_t size,
+volatile uint16_t *flags)
+*/
+LEAF(dtrace_copystr)
+1:
+	lbu	t0, 0(a0)
+	sb	t0, 

CVS commit: src/external/cddl/osnet/dev/cyclic/mips

2021-03-28 Thread Simon Burge
Module Name:src
Committed By:   simonb
Date:   Mon Mar 29 03:27:38 UTC 2021

Added Files:
src/external/cddl/osnet/dev/cyclic/mips: cyclic_machdep.c

Log Message:
Add cyclic_machdep.c for MIPS

The code is identical to i386's one.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 \
src/external/cddl/osnet/dev/cyclic/mips/cyclic_machdep.c

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/dev/cyclic/mips/cyclic_machdep.c
diff -u /dev/null src/external/cddl/osnet/dev/cyclic/mips/cyclic_machdep.c:1.1
--- /dev/null	Mon Mar 29 03:27:38 2021
+++ src/external/cddl/osnet/dev/cyclic/mips/cyclic_machdep.c	Mon Mar 29 03:27:38 2021
@@ -0,0 +1,148 @@
+/*	$NetBSD: cyclic_machdep.c,v 1.1 2021/03/29 03:27:38 simonb Exp $	*/
+
+/*-
+ * Copyright 2006-2008 John Birrell 
+ *
+ * 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 AUTHOR 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 AUTHOR 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: head/sys/cddl/dev/cyclic/i386/cyclic_machdep.c 222813 2011-06-07 08:46:13Z attilio $
+ *
+ */
+
+static void enable(cyb_arg_t);
+static void disable(cyb_arg_t);
+static void reprogram(cyb_arg_t, hrtime_t);
+static void xcall(cyb_arg_t, cpu_t *, cyc_func_t, void *);
+
+static cyc_backend_t	be	= {
+	NULL,		/* cyb_configure */
+	NULL,		/* cyb_unconfigure */
+	enable,
+	disable,
+	reprogram,
+	xcall,
+	NULL		/* cyb_arg_t cyb_arg */
+};
+
+static void
+cyclic_ap_start(void *dummy)
+{
+	/* Initialise the rest of the CPUs. */
+	cyclic_mp_init();
+}
+
+SYSINIT(cyclic_ap_start, SI_SUB_SMP, SI_ORDER_ANY, cyclic_ap_start, NULL);
+
+/*
+ *  Machine dependent cyclic subsystem initialisation.
+ */
+static void
+cyclic_machdep_init(void)
+{
+	/* Register the cyclic backend. */
+	cyclic_init();
+#ifdef __NetBSD__
+	cyclic_ap_start(NULL);
+#endif
+}
+
+static void
+cyclic_machdep_uninit(void)
+{
+	int i;
+
+	for (i = 0; i <= mp_maxid; i++)
+		/* Reset the cyclic clock callback hook. */
+		cyclic_clock_func[i] = NULL;
+
+	/* De-register the cyclic backend. */
+	cyclic_uninit();
+}
+
+static hrtime_t exp_due[MAXCPU];
+
+/*
+ * This function is the one registered by the machine dependent
+ * initialiser as the callback for high speed timer events.
+ */
+static void
+cyclic_clock(struct clockframe *frame)
+{
+	cpu_t *c = _cpu[cpu_number()];
+
+	if (c->cpu_cyclic != NULL && gethrtime() >= exp_due[cpu_number()]) {
+		if (TRAPF_USERMODE(frame)) {
+			c->cpu_profile_pc = 0;
+			c->cpu_profile_upc = TRAPF_PC(frame);
+		} else {
+			c->cpu_profile_pc = TRAPF_PC(frame);
+			c->cpu_profile_upc = 0;
+		}
+
+		c->cpu_intr_actv = 1;
+
+		/* Fire any timers that are due. */
+		cyclic_fire(c);
+
+		c->cpu_intr_actv = 0;
+	}
+}
+
+static void enable(cyb_arg_t arg)
+{
+	/* Register the cyclic clock callback function. */
+	cyclic_clock_func[cpu_number()] = cyclic_clock;
+}
+
+static void disable(cyb_arg_t arg)
+{
+	/* Reset the cyclic clock callback function. */
+	cyclic_clock_func[cpu_number()] = NULL;
+}
+
+static void reprogram(cyb_arg_t arg, hrtime_t exp)
+{
+	exp_due[cpu_number()] = exp;
+}
+
+#ifdef __NetBSD__
+static void xcall_func(void *arg0, void *arg1)
+{
+	cyc_func_t func;
+
+	func = arg0;
+	(*func)(arg1);
+}
+#endif
+
+static void xcall(cyb_arg_t arg, cpu_t *c, cyc_func_t func, void *param)
+{
+#ifdef __NetBSD__
+	uint64_t xc;
+
+	xc = xc_unicast(XC_HIGHPRI, xcall_func, func, param, cpu_lookup(c->cpuid));
+	xc_wait(xc);
+#else
+	smp_rendezvous_cpus((cpumask_t) (1 << c->cpuid),
+	smp_no_rendevous_barrier, func, smp_no_rendevous_barrier, param);
+#endif
+}



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

2021-03-28 Thread Simon Burge
Module Name:src
Committed By:   simonb
Date:   Mon Mar 29 01:43:18 UTC 2021

Modified Files:
src/external/cddl/osnet/sys/sys: mutex_impl.h

Log Message:
Don't define mtx_owner here.  mtx_owner is always available, and not
all architecutres use the same structure for a kernel mutex.

OK thorpej@


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/sys/sys/mutex_impl.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/sys/sys/mutex_impl.h
diff -u src/external/cddl/osnet/sys/sys/mutex_impl.h:1.1 src/external/cddl/osnet/sys/sys/mutex_impl.h:1.2
--- src/external/cddl/osnet/sys/sys/mutex_impl.h:1.1	Sun Feb 21 01:46:36 2010
+++ src/external/cddl/osnet/sys/sys/mutex_impl.h	Mon Mar 29 01:43:18 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: mutex_impl.h,v 1.1 2010/02/21 01:46:36 darran Exp $	*/
+/*	$NetBSD: mutex_impl.h,v 1.2 2021/03/29 01:43:18 simonb Exp $	*/
 
 /*-
  * Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -35,7 +35,6 @@
 #define	__MUTEX_PRIVATE
 #include 
 
-#define	mtx_owner 		u.mtxa_owner
 #define	MUTEX_THREAD		((uintptr_t)-16L)
 #define	MUTEX_OWNER(mtx)	\
 	((mtx)->mtx_owner & MUTEX_THREAD)



CVS commit: src/external/cddl/osnet/usr.sbin/dtrace

2021-03-26 Thread Simon Burge
Module Name:src
Committed By:   simonb
Date:   Sat Mar 27 02:58:39 UTC 2021

Modified Files:
src/external/cddl/osnet/usr.sbin/dtrace: Makefile

Log Message:
Use LDADD/DPADD instead of PROGDPLIBS - we are linking against installed
libraries.

Use compat/exec.mk - dtrace isn't compat32 friendly (yet?).


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/external/cddl/osnet/usr.sbin/dtrace/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/usr.sbin/dtrace/Makefile
diff -u src/external/cddl/osnet/usr.sbin/dtrace/Makefile:1.14 src/external/cddl/osnet/usr.sbin/dtrace/Makefile:1.15
--- src/external/cddl/osnet/usr.sbin/dtrace/Makefile:1.14	Sat Apr  4 13:15:48 2020
+++ src/external/cddl/osnet/usr.sbin/dtrace/Makefile	Sat Mar 27 02:58:39 2021
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.14 2020/04/04 13:15:48 christos Exp $
+#	$NetBSD: Makefile,v 1.15 2021/03/27 02:58:39 simonb Exp $
 
 # $FreeBSD: head/cddl/usr.sbin/dtrace/Makefile 314654 2017-03-04 11:30:04Z ngie $
 
@@ -39,13 +39,9 @@ COPTS.dtrace.c += -Wno-missing-field-ini
 COPTS.dtrace.c += -Wno-format
 
 LDFLAGS+=	-pthread
+LDADD+=		   -lctf -ldtrace -lelf -lproc -ly -ll -lz
+DPADD+=		${LIBCTF} ${LIBDTRACE} ${LIBELF} ${LIBPROC} ${LIBY} ${LIBL} ${LIBZ}
 
-PROGDPLIBS+=	ctf ${.CURDIR}/../../lib/libctf
-PROGDPLIBS+=	dtrace ${.CURDIR}/../../lib/libdtrace
-PROGDPLIBS+=	elf ${NETBSDSRCDIR}/external/bsd/elftoolchain/lib/libelf
-PROGDPLIBS+=	proc ${NETBSDSRCDIR}/external/bsd/libproc/lib
-PROGDPLIBS+=	y ${NETBSDSRCDIR}/lib/liby
-PROGDPLIBS+=	l ${NETBSDSRCDIR}/external/bsd/flex/lib
-PROGDPLIBS+=	z ${NETBSDSRCDIR}/lib/libz
+.include "../../compat/exec.mk"
 
 .include 



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

2021-03-25 Thread Greg Troxel
Module Name:src
Committed By:   gdt
Date:   Thu Mar 25 18:41:29 UTC 2021

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

Log Message:
zfs_ioctl.c: Drop WARNING that ZFS is under development

Following discussions on current-users@, it seems many rely on ZFS to
store data, and there are not particularly large issues with ZFS.  ATF
tests with /tmp as tmpfs, ffs2, and zfs are similar, with only a
slight increase in failures under zfs.

(This commit should probably NOT be pulled up to 9.)


To generate a diff of this commit:
cvs rdiff -u -r1.22 -r1.23 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.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_ioctl.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c:1.22 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c:1.23
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c:1.22	Fri Feb 28 03:52:26 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c	Thu Mar 25 18:41:29 2021
@@ -7194,7 +7194,6 @@ zfs_modcmd(modcmd_t cmd, void *arg)
 		/* XXXNETBSD trim is not supported yet */
 		zfs_trim_enabled = B_FALSE;
 
-		printf("WARNING: ZFS on NetBSD is under development\n");
 		availrmem = (uint64_t)physmem * PAGE_SIZE / 1048576;
 		if (availrmem < ZFS_MIN_MEGS * 80 / 100) {
 			printf("ERROR: at least %dMB of memory required to "



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

2021-03-23 Thread Simon Burge
Module Name:src
Committed By:   simonb
Date:   Wed Mar 24 04:46:41 UTC 2021

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

Log Message:
Add NetBSD CVS IDs.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c
cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.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/dev/fbt/aarch64/fbt_isa.c
diff -u src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.6 src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.7
--- src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.6	Wed Feb 12 06:05:31 2020
+++ src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c	Wed Mar 24 04:46:41 2021
@@ -1,3 +1,5 @@
+/*	$NetBSD: fbt_isa.c,v 1.7 2021/03/24 04:46:41 simonb Exp $	*/
+
 /*
  * CDDL HEADER START
  *

Index: src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.h
diff -u src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.h:1.1 src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.h:1.2
--- src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.h:1.1	Tue Dec  3 22:10:56 2019
+++ src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.h	Wed Mar 24 04:46:41 2021
@@ -1,3 +1,5 @@
+/*	$NetBSD: fbt_isa.h,v 1.2 2021/03/24 04:46:41 simonb Exp $	*/
+
 /*
  * CDDL HEADER START
  *



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

2021-02-16 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue Feb 16 09:54:17 UTC 2021

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

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

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

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


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

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

Modified files:

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



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

2020-11-28 Thread Yorick Hardy
Module Name:src
Committed By:   yhardy
Date:   Sat Nov 28 22:53:06 UTC 2020

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

Log Message:
Use vn_close to release the vnodes in the error handling blocks, since
the vnodes were opened for writing. Fix proposed on current-users
and improved by hannken@.


To generate a diff of this commit:
cvs rdiff -u -r1.18 -r1.19 \
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.18 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.19
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.18	Thu Jun 25 09:39:15 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c	Sat Nov 28 22:53:06 2020
@@ -215,7 +215,11 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi
 		return (SET_ERROR(error));
 	}
 	if (vp->v_type != VBLK) {
+#ifdef __NetBSD__
+		vn_close(vp, FREAD|FWRITE, kcred);
+#else
 		vrele(vp);
+#endif
 		vd->vdev_stat.vs_aux = VDEV_AUX_OPEN_FAILED;
 		return (SET_ERROR(EINVAL));
 	}
@@ -247,7 +251,11 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi
 	error = workqueue_create(>vd_wq, "vdevsync",
 	vdev_disk_flush, dvd, PRI_NONE, IPL_NONE, WQ_MPSAFE);
 	if (error != 0) {
+#ifdef __NetBSD__
+		vn_close(vp, FREAD|FWRITE, kcred);
+#else
 		vrele(vp);
+#endif
 		return (SET_ERROR(error));
 	}
 



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

2020-11-16 Thread Chuck Silvers
Module Name:src
Committed By:   chs
Date:   Tue Nov 17 03:20:33 UTC 2020

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

Log Message:
Remove a pointless printf.


To generate a diff of this commit:
cvs rdiff -u -r1.40 -r1.41 \
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.40 src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c:1.41
--- src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c:1.40	Sat May 23 23:42:41 2020
+++ src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c	Tue Nov 17 03:20:33 2020
@@ -13840,7 +13840,6 @@ doferr:
 	return (NULL);
 #endif /* __FreeBSD__ */
 #ifdef __NetBSD__
-	printf("dtrace: XXX %s not implemented (name=%s)\n", __func__, name);
 	return (NULL);
 #endif /* __NetBSD__ */
 }



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

2020-11-14 Thread Chuck Silvers
Module Name:src
Committed By:   chs
Date:   Sun Nov 15 00:54:13 UTC 2020

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

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

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


To generate a diff of this commit:
cvs rdiff -u -r1.70 -r1.71 \
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.70 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.71
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.70	Thu Aug 27 09:57:33 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Sun Nov 15 00:54:13 2020
@@ -6049,20 +6049,13 @@ zfs_netbsd_getpages(void *v)
 			PAGE_SIZE, va, DMU_READ_PREFETCH);
 			zfs_unmap_page(pg, va);
 
-			rw_enter(rw, RW_WRITER);
 			if (err != 0) {
-for (i = 0; i < npages; i++) {
-	pg = ap->a_m[i];
-	if ((pg->flags & PG_FAKE) != 0) {
-		uvm_pagefree(pg);
-	} else {
-		uvm_page_unbusy(, 1);
-	}
-}
+uvm_aio_aiodone_pages(ap->a_m, npages, false, err);
 memset(ap->a_m, 0, sizeof(ap->a_m[0]) *
 npages);
 break;
 			}
+			rw_enter(rw, RW_WRITER);
 			pg->flags &= ~(PG_FAKE);
 		}
 
@@ -6089,14 +6082,13 @@ zfs_putapage(vnode_t *vp, page_t **pp, i
 	voff_t		len, klen;
 	int		err;
 
-	bool async = (flags & PGO_SYNCIO) == 0;
 	bool *cleanedp;
 	struct uvm_object *uobj = >v_uobj;
 	krwlock_t *rw = uobj->vmobjlock;
 
 	if (zp->z_sa_hdl == NULL) {
 		err = 0;
-		goto out_unbusy;
+		goto out;
 	}
 
 	/*
@@ -6170,12 +6162,8 @@ zfs_putapage(vnode_t *vp, page_t **pp, i
 	}
 	dmu_tx_commit(tx);
 
-out_unbusy:
-	rw_enter(rw, RW_WRITER);
-	uvm_page_unbusy(pp, count);
-	rw_exit(rw);
-
 out:
+	uvm_aio_aiodone_pages(pp, count, true, err);
 	return (err);
 }
 



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

2020-11-11 Thread Rin Okuyama
Module Name:src
Committed By:   rin
Date:   Thu Nov 12 02:15:56 UTC 2020

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

Log Message:
One more catch up with ``aarch64 is not mips'' change.
Fix evbarm-aarch64 build.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/external/cddl/osnet/dev/dtrace/aarch64/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/aarch64/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.3 src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.4
--- src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.3	Wed Feb 12 06:05:23 2020
+++ src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c	Thu Nov 12 02:15:56 2020
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.3 2020/02/12 06:05:23 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.4 2020/11/12 02:15:56 rin Exp $");
 
 #include 
 #include 
@@ -128,7 +128,7 @@ void
 dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit))
 {
 
-	(*func)(0, (uintptr_t)AARCH64_KSEG_START);
+	(*func)(0, (uintptr_t)AARCH64_DIRECTMAP_START);
 	(*func)((uintptr_t)VM_KERNEL_IO_ADDRESS, ~(uintptr_t)0);
 }
 



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

2020-11-10 Thread Chuck Silvers
Module Name:src
Committed By:   chs
Date:   Wed Nov 11 03:31:04 UTC 2020

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

Log Message:
kmem_cache_create()'s "name" parameter can be on the stack,
so make a copy of it rather than keeping a pointer to it.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/sys/kern/kmem.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/kmem.c
diff -u src/external/cddl/osnet/sys/kern/kmem.c:1.2 src/external/cddl/osnet/sys/kern/kmem.c:1.3
--- src/external/cddl/osnet/sys/kern/kmem.c:1.2	Thu May 23 08:32:30 2019
+++ src/external/cddl/osnet/sys/kern/kmem.c	Wed Nov 11 03:31:04 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: kmem.c,v 1.2 2019/05/23 08:32:30 hannken Exp $	*/
+/*	$NetBSD: kmem.c,v 1.3 2020/11/11 03:31:04 chs Exp $	*/
 
 /*-
  * Copyright (c) 2017 The NetBSD Foundation, Inc.
@@ -30,6 +30,7 @@
 
 struct kmem_cache {
 	pool_cache_t km_pool;
+	char km_name[32];
 	void *km_private;
 	int (*km_constructor)(void *, void *, int);
 	void (*km_destructor)(void *, void *);
@@ -78,11 +79,12 @@ kmem_cache_create(char *name, size_t buf
 	KASSERT(vmp == NULL);
 
 	km = kmem_zalloc(sizeof(*km), KM_SLEEP);
+	strlcpy(km->km_name, name, sizeof(km->km_name));
 	km->km_private = private;
 	km->km_constructor = constructor;
 	km->km_destructor = destructor;
 	km->km_reclaim = reclaim;
-	km->km_pool = pool_cache_init(bufsize, align, 0, 0, name, NULL,
+	km->km_pool = pool_cache_init(bufsize, align, 0, 0, km->km_name, NULL,
 	IPL_NONE, solaris_constructor, solaris_destructor, km);
 	if (km->km_pool == NULL) {
 		kmem_free(km, sizeof(*km));



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

2020-10-12 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Mon Oct 12 08:21:21 UTC 2020

Modified Files:
src/external/cddl/osnet/sys/sys: cred.h

Log Message:
Stub groupmember() has to test both group list and current group id.

Fixes kern/55675: ZFS mounts do not work with setuid programs


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/external/cddl/osnet/sys/sys/cred.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/sys/sys/cred.h
diff -u src/external/cddl/osnet/sys/sys/cred.h:1.7 src/external/cddl/osnet/sys/sys/cred.h:1.8
--- src/external/cddl/osnet/sys/sys/cred.h:1.7	Wed Apr 29 05:54:37 2020
+++ src/external/cddl/osnet/sys/sys/cred.h	Mon Oct 12 08:21:21 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: cred.h,v 1.7 2020/04/29 05:54:37 riastradh Exp $	*/
+/*	$NetBSD: cred.h,v 1.8 2020/10/12 08:21:21 hannken Exp $	*/
 
 /*-
  * Copyright (c) 2007 Pawel Jakub Dawidek 
@@ -70,10 +70,12 @@ extern kauth_cred_t	cred0;
 static __inline int
 groupmember(gid_t gid, cred_t *cr) 
 {
-	int result;
+	int result, error;
 
-	kauth_cred_ismember_gid(cr, gid, );
-	return result;
+	error = kauth_cred_ismember_gid(cr, gid, );
+	if (error)
+		return 0;
+	return (kauth_cred_getegid(cr) == gid || result);
 }
 
 #endif	/* _KERNEL */



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

2020-10-09 Thread Frank Kardel
Module Name:src
Committed By:   kardel
Date:   Fri Oct  9 08:18:01 UTC 2020

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

Log Message:
PR kern/55705:
don't attempt to sleep for negative time, we are late anyway - avoids 
DIAGNOSTIC panic


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
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.5 src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c:1.6
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c:1.5	Mon Mar  9 15:37:46 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c	Fri Oct  9 08:18:01 2020
@@ -1153,6 +1153,9 @@ dmu_tx_delay(dmu_tx_t *tx, uint64_t dirt
 #ifdef __NetBSD__
 	int timo = (wakeup - now) * hz / 10;
 
+	if (timo < 0)
+		return;
+
 	if (timo == 0)
 		timo = 1;
 	kpause("dmu_tx_delay", false, timo, NULL);



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

2020-09-07 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Sep  7 19:04:27 UTC 2020

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

Log Message:
Comment out index out of bounds debugging code.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode_sync.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_sync.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode_sync.c:1.6 src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode_sync.c:1.7
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode_sync.c:1.6	Mon May 28 17:05:07 2018
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode_sync.c	Mon Sep  7 15:04:27 2020
@@ -689,6 +689,7 @@ dnode_sync(dnode_t *dn, dmu_tx_t *tx)
 			bzero(dnp->dn_blkptr + dnp->dn_nblkptr,
 			sizeof (blkptr_t) *
 			(dn->dn_next_nblkptr[txgoff] - dnp->dn_nblkptr));
+#ifdef notyet /* XXX: gcc-9 */
 #ifdef ZFS_DEBUG
 		} else {
 			int i;
@@ -698,6 +699,7 @@ dnode_sync(dnode_t *dn, dmu_tx_t *tx)
 			i < dnp->dn_nblkptr; i++)
 ASSERT(BP_IS_HOLE(>dn_blkptr[i]));
 #endif
+#endif
 		}
 		mutex_enter(>dn_mtx);
 		dnp->dn_nblkptr = dn->dn_next_nblkptr[txgoff];



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

2020-09-07 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Mon Sep  7 07:44:53 UTC 2020

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

Log Message:
i can't confirm or deny that GCC 9 is wrong about parity_valid[]
having uninitialised members, but since setting up reconstruct
isn't a hot path, just zero init the whole thing to be sure.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_raidz.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_raidz.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_raidz.c:1.2 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_raidz.c:1.3
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_raidz.c:1.2	Mon May 28 21:05:07 2018
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_raidz.c	Mon Sep  7 07:44:53 2020
@@ -1412,7 +1412,7 @@ vdev_raidz_reconstruct(raidz_map_t *rm, 
 	int i, c;
 	int code;
 	int nbadparity, nbaddata;
-	int parity_valid[VDEV_RAIDZ_MAXPARITY];
+	int parity_valid[VDEV_RAIDZ_MAXPARITY] = {0};
 
 	/*
 	 * The tgts list must already be sorted.



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

2020-09-06 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sun Sep  6 21:49:32 UTC 2020

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

Log Message:
Adjust string sizes


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 \
src/external/cddl/osnet/dist/lib/libdtrace/common/dt_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/dist/lib/libdtrace/common/dt_subr.c
diff -u src/external/cddl/osnet/dist/lib/libdtrace/common/dt_subr.c:1.13 src/external/cddl/osnet/dist/lib/libdtrace/common/dt_subr.c:1.14
--- src/external/cddl/osnet/dist/lib/libdtrace/common/dt_subr.c:1.13	Mon May 28 17:05:05 2018
+++ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_subr.c	Sun Sep  6 17:49:32 2020
@@ -956,7 +956,7 @@ int
 dtrace_uaddr2str(dtrace_hdl_t *dtp, pid_t pid,
 uint64_t addr, char *str, int nbytes)
 {
-	char name[PATH_MAX], objname[PATH_MAX], c[PATH_MAX * 2];
+	char name[PATH_MAX / 2], objname[PATH_MAX], c[PATH_MAX * 2];
 	struct ps_prochandle *P = NULL;
 	GElf_Sym sym;
 	char *obj;
@@ -977,8 +977,8 @@ dtrace_uaddr2str(dtrace_hdl_t *dtp, pid_
 		obj = dt_basename(objname);
 
 		if (addr > sym.st_value) {
-			(void) snprintf(c, sizeof (c), "%s`%s+0x%llx", obj,
-			name, (u_longlong_t)(addr - sym.st_value));
+			(void) snprintf(c, sizeof (c), "%s`%s+0x%jx", obj,
+			name, (uintmax_t)(addr - sym.st_value));
 		} else {
 			(void) snprintf(c, sizeof (c), "%s`%s", obj, name);
 		}



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

2020-09-06 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sun Sep  6 21:49:44 UTC 2020

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

Log Message:
Stop using alloca


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
src/external/cddl/osnet/dist/lib/libdtrace/common/dt_options.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_options.c
diff -u src/external/cddl/osnet/dist/lib/libdtrace/common/dt_options.c:1.8 src/external/cddl/osnet/dist/lib/libdtrace/common/dt_options.c:1.9
--- src/external/cddl/osnet/dist/lib/libdtrace/common/dt_options.c:1.8	Mon May 28 17:05:05 2018
+++ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_options.c	Sun Sep  6 17:49:44 2020
@@ -904,8 +904,9 @@ dt_options_load(dtrace_hdl_t *dtp)
 	if (hdr.dofh_loadsz < sizeof (dof_hdr_t))
 		return (dt_set_errno(dtp, EINVAL));
 
-	dof = alloca(hdr.dofh_loadsz);
-	bzero(dof, sizeof (dof_hdr_t));
+	dof = calloc(hdr.dofh_loadsz, 1);
+	if (dof == NULL)
+		return (dt_set_errno(dtp, errno));
 	dof->dofh_loadsz = hdr.dofh_loadsz;
 
 	for (i = 0; i < DTRACEOPT_MAX; i++)
@@ -916,7 +917,10 @@ dt_options_load(dtrace_hdl_t *dtp)
 #else
 	if (dt_ioctl(dtp, DTRACEIOC_DOFGET, ) == -1)
 #endif
+	{
+		free(dof);
 		return (dt_set_errno(dtp, errno));
+	}
 
 	for (i = 0; i < dof->dofh_secnum; i++) {
 		sec = (dof_sec_t *)(uintptr_t)((uintptr_t)dof +
@@ -940,7 +944,7 @@ dt_options_load(dtrace_hdl_t *dtp)
 
 		dtp->dt_options[opt->dofo_option] = opt->dofo_value;
 	}
-
+	free(dof);
 	return (0);
 }
 



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

2020-09-06 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sun Sep  6 16:44:17 UTC 2020

Modified Files:
src/external/cddl/osnet/dist/lib/libctf/common: ctf_lib.c

Log Message:
fix zeroing


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
src/external/cddl/osnet/dist/lib/libctf/common/ctf_lib.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/libctf/common/ctf_lib.c
diff -u src/external/cddl/osnet/dist/lib/libctf/common/ctf_lib.c:1.8 src/external/cddl/osnet/dist/lib/libctf/common/ctf_lib.c:1.9
--- src/external/cddl/osnet/dist/lib/libctf/common/ctf_lib.c:1.8	Thu Aug 20 11:54:11 2020
+++ src/external/cddl/osnet/dist/lib/libctf/common/ctf_lib.c	Sun Sep  6 12:44:16 2020
@@ -234,7 +234,7 @@ ctf_fdopen(int fd, int *errp)
 	bzero(, sizeof (ctf_sect_t));
 	bzero(, sizeof (ctf_sect_t));
 	bzero(, sizeof (ctf_sect_t));
-	bzero(, sizeof (hdr));
+	bzero(, sizeof (hdr));
 
 	if (fstat64(fd, ) == -1)
 		return (ctf_set_open_errno(errp, errno));



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

2020-08-28 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Fri Aug 28 16:13:48 UTC 2020

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

Log Message:
Glue operation secpolicy_fs_mount() passes wrong arguments to
operation kauth_authorize_system().

KAUTH_SYSTEM_MOUNT / KAUTH_REQ_SYSTEM_MOUNT_NEW wants the to be
covered vnode and the mount flags, not the mount structure.

Fix for PR kern/55602: zpool panic on mounting zfs filesystem


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/external/cddl/osnet/sys/kern/policy.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/policy.c
diff -u src/external/cddl/osnet/sys/kern/policy.c:1.8 src/external/cddl/osnet/sys/kern/policy.c:1.9
--- src/external/cddl/osnet/sys/kern/policy.c:1.8	Sat May 16 18:31:46 2020
+++ src/external/cddl/osnet/sys/kern/policy.c	Fri Aug 28 16:13:48 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: policy.c,v 1.8 2020/05/16 18:31:46 christos Exp $	*/
+/*	$NetBSD: policy.c,v 1.9 2020/08/28 16:13:48 hannken Exp $	*/
 
 /*-
  * Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -119,7 +119,7 @@ secpolicy_fs_mount(cred_t *cred, vnode_t
 {
 
 	return kauth_authorize_system(cred, KAUTH_SYSTEM_MOUNT,
-	KAUTH_REQ_SYSTEM_MOUNT_NEW, vfsp, NULL, NULL);
+	KAUTH_REQ_SYSTEM_MOUNT_NEW, mvp, KAUTH_ARG(vfsp->mnt_flag), NULL);
 }
 
 int



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

2020-08-27 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Thu Aug 27 09:57:34 UTC 2020

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

Log Message:
Enable NCLOOKUP for ZFS.


To generate a diff of this commit:
cvs rdiff -u -r1.28 -r1.29 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c
cvs rdiff -u -r1.69 -r1.70 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c
cvs rdiff -u -r1.33 -r1.34 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c

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

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.28 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.29
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.28	Tue May 26 08:39:27 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c	Thu Aug 27 09:57:33 2020
@@ -1517,7 +1517,7 @@ zfs_domount(vfs_t *vfsp, char *osname)
 #endif
 #ifdef __NetBSD__
 	vfsp->mnt_flag |= MNT_LOCAL;
-	vfsp->mnt_iflag |= IMNT_MPSAFE;
+	vfsp->mnt_iflag |= IMNT_MPSAFE | IMNT_NCLOOKUP;
 #endif
 
 	/*
@@ -2078,7 +2078,7 @@ zfs_mount(vfs_t *vfsp, const char *path,
 	vfsp->vfs_flag |= MNT_NFS4ACLS;
 #endif
 #ifdef __NetBSD__
-	vfsp->mnt_iflag |= IMNT_MPSAFE;
+	vfsp->mnt_iflag |= IMNT_MPSAFE | IMNT_NCLOOKUP;
 #endif
 
 	/*

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.69 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.70
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.69	Thu May 21 20:43:23 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Thu Aug 27 09:57:33 2020
@@ -1354,6 +1354,10 @@ zfs_write(vnode_t *vp, uio_t *uio, int i
 			newmode = zp->z_mode;
 			(void) sa_update(zp->z_sa_hdl, SA_ZPL_MODE(zfsvfs),
 			(void *), sizeof (uint64_t), tx);
+#ifdef __NetBSD__
+			cache_enter_id(vp, zp->z_mode, zp->z_uid, zp->z_gid,
+			true);
+#endif
 		}
 		mutex_exit(>z_acl_lock);
 
@@ -5645,8 +5649,11 @@ zfs_netbsd_setattr(void *v)
 	}
 
 	error = zfs_setattr(vp, (vattr_t *), flags, cred, NULL);
-	if (error == 0)
-		VN_KNOTE(vp, NOTE_ATTRIB);
+	if (error)
+		return error;
+
+	VN_KNOTE(vp, NOTE_ATTRIB);
+	cache_enter_id(vp, zp->z_mode, zp->z_uid, zp->z_gid, true);
 
 	return error;
 }

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.33 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.34
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.33	Thu May  7 09:13:06 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c	Thu Aug 27 09:57:33 2020
@@ -871,6 +871,7 @@ zfs_loadvnode(struct mount *mp, struct v
 		return (SET_ERROR(ENOENT));
 	}
 	ASSERT(zp == VTOZ(vp));
+	cache_enter_id(vp, zp->z_mode, zp->z_uid, zp->z_gid, true);
 
 	ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num);
 
@@ -891,6 +892,8 @@ zfs_newvnode(struct mount *mp, vnode_t *
 
 	zfs_mknode1(dzp, vap, tx, cr, flag, , acl_ids, vp);
 	ASSERT(zp == VTOZ(vp));
+	cache_enter_id(vp, zp->z_mode, zp->z_uid, zp->z_gid, true);
+
 	*key_len = sizeof(zp->z_id);
 	*new_key = >z_id;
 



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

2020-06-27 Thread Jaromir Dolecek
Module Name:src
Committed By:   jdolecek
Date:   Sat Jun 27 21:21:11 UTC 2020

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

Log Message:
fix bug introduced in conversion to kmem(9), passing address of the local
variable instead of pointer to allocated memory

should fix PR kern/55426 by Andreas Gustafsson


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_queue.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_queue.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_queue.c:1.2 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_queue.c:1.3
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_queue.c:1.2	Wed Jun 24 16:16:01 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_queue.c	Sat Jun 27 21:21:11 2020
@@ -820,7 +820,7 @@ again:
 	search = kmem_zalloc(sizeof (*search), KM_NOSLEEP);
 	if (search) {
 		search->io_offset = vq->vq_last_offset + 1;
-		VERIFY3P(avl_find(tree, , ), ==, NULL);
+		VERIFY3P(avl_find(tree, search, ), ==, NULL);
 		kmem_free(search, sizeof (*search));
 		zio = avl_nearest(tree, idx, AVL_AFTER);
 	} else {



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

2020-06-25 Thread Michael van Elst
Module Name:src
Committed By:   mlelstv
Date:   Thu Jun 25 09:39:15 UTC 2020

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

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

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


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 \
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.17 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.18
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.17	Sun Jun 21 21:29:11 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c	Thu Jun 25 09:39:15 2020
@@ -222,19 +222,18 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi
 
 	pdk = NULL;
 	if (getdiskinfo(vp, ) == 0)
-		pdk = disk_find(dkw.dkw_parent);
+		pdk = disk_find(dkw.dkw_devname);
 
 	/* XXXNETBSD Once tls-maxphys gets merged this block becomes:
 		dvd->vd_maxphys = (pdk ? disk_maxphys(pdk) : MACHINE_MAXPHYS);
 	*/
 	{
 		struct buf buf = {
+			.b_dev = vp->v_rdev,
 			.b_bcount = MAXPHYS,
 		};
-		if (pdk && pdk->dk_driver && pdk->dk_driver->d_minphys) {
-			buf.b_dev = pdk->dk_rawvp->v_rdev;
+		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

2020-06-24 Thread Jaromir Dolecek
Module Name:src
Committed By:   jdolecek
Date:   Wed Jun 24 16:29:34 UTC 2020

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

Log Message:
reduce stack usage in dsl_scan_recurse() - allocate memory for
temporary zbookmark_phys_t using kmem_alloc() rather than stack;
this recuses several times usually, and this saves 2x
sizeof(zbookmark_phys_t) == 64 bytes per recursion

part of fix for PR kern/55402 by Frank Kardel


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_scan.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_scan.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_scan.c:1.2 src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_scan.c:1.3
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_scan.c:1.2	Wed Jun 24 16:23:16 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_scan.c	Wed Jun 24 16:29:34 2020
@@ -397,7 +397,7 @@ static void dsl_scan_visitbp(blkptr_t *b
 dmu_objset_type_t ostype, dmu_tx_t *tx);
 static void dsl_scan_visitdnode(dsl_scan_t *, dsl_dataset_t *ds,
 dmu_objset_type_t ostype,
-dnode_phys_t *dnp, uint64_t object, dmu_tx_t *tx);
+dnode_phys_t *dnp, uint64_t object, dmu_tx_t *tx, zbookmark_phys_t *);
 
 void
 dsl_free(dsl_pool_t *dp, uint64_t txg, const blkptr_t *bp)
@@ -585,9 +585,8 @@ dsl_scan_zil(dsl_pool_t *dp, zil_header_
 /* ARGSUSED */
 static void
 dsl_scan_prefetch(dsl_scan_t *scn, arc_buf_t *buf, blkptr_t *bp,
-uint64_t objset, uint64_t object, uint64_t blkid)
+uint64_t objset, uint64_t object, uint64_t blkid, zbookmark_phys_t *czb)
 {
-	zbookmark_phys_t czb;
 	arc_flags_t flags = ARC_FLAG_NOWAIT | ARC_FLAG_PREFETCH;
 
 	if (zfs_no_scrub_prefetch)
@@ -597,11 +596,11 @@ dsl_scan_prefetch(dsl_scan_t *scn, arc_b
 	(BP_GET_LEVEL(bp) == 0 && BP_GET_TYPE(bp) != DMU_OT_DNODE))
 		return;
 
-	SET_BOOKMARK(, objset, object, BP_GET_LEVEL(bp), blkid);
+	SET_BOOKMARK(czb, objset, object, BP_GET_LEVEL(bp), blkid);
 
 	(void) arc_read(scn->scn_zio_root, scn->scn_dp->dp_spa, bp,
 	NULL, NULL, ZIO_PRIORITY_ASYNC_READ,
-	ZIO_FLAG_CANFAIL | ZIO_FLAG_SCAN_THREAD, , );
+	ZIO_FLAG_CANFAIL | ZIO_FLAG_SCAN_THREAD, , czb);
 }
 
 static boolean_t
@@ -659,6 +658,7 @@ dsl_scan_recurse(dsl_scan_t *scn, dsl_da
 		blkptr_t *cbp;
 		int epb = BP_GET_LSIZE(bp) >> SPA_BLKPTRSHIFT;
 		arc_buf_t *buf;
+		zbookmark_phys_t *czb;
 
 		err = arc_read(NULL, dp->dp_spa, bp, arc_getbuf_func, ,
 		ZIO_PRIORITY_ASYNC_READ, zio_flags, , zb);
@@ -666,19 +666,19 @@ dsl_scan_recurse(dsl_scan_t *scn, dsl_da
 			scn->scn_phys.scn_errors++;
 			return (err);
 		}
+		czb = kmem_alloc(sizeof (*czb), KM_SLEEP);
 		for (i = 0, cbp = buf->b_data; i < epb; i++, cbp++) {
 			dsl_scan_prefetch(scn, buf, cbp, zb->zb_objset,
-			zb->zb_object, zb->zb_blkid * epb + i);
+			zb->zb_object, zb->zb_blkid * epb + i, czb);
 		}
 		for (i = 0, cbp = buf->b_data; i < epb; i++, cbp++) {
-			zbookmark_phys_t czb;
-
-			SET_BOOKMARK(, zb->zb_objset, zb->zb_object,
+			SET_BOOKMARK(czb, zb->zb_objset, zb->zb_object,
 			zb->zb_level - 1,
 			zb->zb_blkid * epb + i);
-			dsl_scan_visitbp(cbp, , dnp,
+			dsl_scan_visitbp(cbp, czb, dnp,
 			ds, scn, ostype, tx);
 		}
+		kmem_free(czb, sizeof (*czb));
 		arc_buf_destroy(buf, );
 	} else if (BP_GET_TYPE(bp) == DMU_OT_DNODE) {
 		arc_flags_t flags = ARC_FLAG_WAIT;
@@ -686,6 +686,7 @@ dsl_scan_recurse(dsl_scan_t *scn, dsl_da
 		int i, j;
 		int epb = BP_GET_LSIZE(bp) >> DNODE_SHIFT;
 		arc_buf_t *buf;
+		zbookmark_phys_t *czb;
 
 		err = arc_read(NULL, dp->dp_spa, bp, arc_getbuf_func, ,
 		ZIO_PRIORITY_ASYNC_READ, zio_flags, , zb);
@@ -693,23 +694,27 @@ dsl_scan_recurse(dsl_scan_t *scn, dsl_da
 			scn->scn_phys.scn_errors++;
 			return (err);
 		}
+		czb = kmem_alloc(sizeof (*czb), KM_SLEEP);
 		for (i = 0, cdnp = buf->b_data; i < epb; i++, cdnp++) {
 			for (j = 0; j < cdnp->dn_nblkptr; j++) {
 blkptr_t *cbp = >dn_blkptr[j];
 dsl_scan_prefetch(scn, buf, cbp,
-zb->zb_objset, zb->zb_blkid * epb + i, j);
+zb->zb_objset, zb->zb_blkid * epb + i, j,
+czb);
 			}
 		}
 		for (i = 0, cdnp = buf->b_data; i < epb; i++, cdnp++) {
 			dsl_scan_visitdnode(scn, ds, ostype,
-			cdnp, zb->zb_blkid * epb + i, tx);
+			cdnp, zb->zb_blkid * epb + i, tx, czb);
 		}
+		kmem_free(czb, sizeof (*czb));
 
 		arc_buf_destroy(buf, );
 	} else if (BP_GET_TYPE(bp) == DMU_OT_OBJSET) {
 		arc_flags_t flags = ARC_FLAG_WAIT;
 		objset_phys_t *osp;
 		arc_buf_t *buf;
+		zbookmark_phys_t *czb;
 
 		err = arc_read(NULL, dp->dp_spa, bp, arc_getbuf_func, ,
 		ZIO_PRIORITY_ASYNC_READ, zio_flags, , zb);
@@ -720,8 +725,9 @@ dsl_scan_recurse(dsl_scan_t *scn, dsl_da
 
 		osp = buf->b_data;
 
+		czb = kmem_alloc(sizeof (*czb), KM_SLEEP);
 		

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

2020-06-24 Thread Jaromir Dolecek
Module Name:src
Committed By:   jdolecek
Date:   Wed Jun 24 16:23:16 UTC 2020

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

Log Message:
change dsl_scan_visitbp() to allocate blkptr_t dynamically rather than
on-stack - this function is called recursively, and the 120 bytes per call
add up; also remove unused variable

part of fix for PR kern/55402 by Frank Kardel


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r1.2 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_scan.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_scan.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_scan.c:1.1.1.1 src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_scan.c:1.2
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_scan.c:1.1.1.1	Mon May 28 20:52:57 2018
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_scan.c	Wed Jun 24 16:23:16 2020
@@ -778,10 +778,7 @@ dsl_scan_visitbp(blkptr_t *bp, const zbo
 dmu_objset_type_t ostype, dmu_tx_t *tx)
 {
 	dsl_pool_t *dp = scn->scn_dp;
-	arc_buf_t *buf = NULL;
-	blkptr_t bp_toread = *bp;
-
-	/* ASSERT(pbuf == NULL || arc_released(pbuf)); */
+	blkptr_t *bp_toread = NULL;
 
 	if (dsl_scan_check_pause(scn, zb))
 		return;
@@ -803,8 +800,11 @@ dsl_scan_visitbp(blkptr_t *bp, const zbo
 	if (bp->blk_birth <= scn->scn_phys.scn_cur_min_txg)
 		return;
 
-	if (dsl_scan_recurse(scn, ds, ostype, dnp, _toread, zb, tx) != 0)
-		return;
+	bp_toread = kmem_alloc(sizeof (blkptr_t), KM_SLEEP);
+	*bp_toread = *bp;
+
+	if (dsl_scan_recurse(scn, ds, ostype, dnp, bp_toread, zb, tx) != 0)
+		goto out;
 
 	/*
 	 * If dsl_scan_ddt() has aready visited this block, it will have
@@ -813,8 +813,7 @@ dsl_scan_visitbp(blkptr_t *bp, const zbo
 	 */
 	if (ddt_class_contains(dp->dp_spa,
 	scn->scn_phys.scn_ddt_class_max, bp)) {
-		ASSERT(buf == NULL);
-		return;
+		goto out;
 	}
 
 	/*
@@ -827,6 +826,9 @@ dsl_scan_visitbp(blkptr_t *bp, const zbo
 	if (BP_PHYSICAL_BIRTH(bp) <= scn->scn_phys.scn_cur_max_txg) {
 		scan_funcs[scn->scn_phys.scn_func](dp, bp, zb);
 	}
+
+out:
+	kmem_free(bp_toread, sizeof (blkptr_t));
 }
 
 static void



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

2020-06-24 Thread Jaromir Dolecek
Module Name:src
Committed By:   jdolecek
Date:   Wed Jun 24 16:16:01 UTC 2020

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

Log Message:
reduce stack usage in vdev_queue_io_to_issue() - zio_t is about 1KB, and
the function potentially recurses into itself

part of fix for PR kern/55402 by Frank Kardel


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.3 -r1.2 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_queue.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_queue.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_queue.c:1.1.1.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_queue.c:1.2
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_queue.c:1.1.1.3	Mon May 28 20:52:59 2018
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_queue.c	Wed Jun 24 16:16:01 2020
@@ -798,7 +798,7 @@ vdev_queue_io_to_issue(vdev_queue_t *vq)
 	zio_priority_t p;
 	avl_index_t idx;
 	avl_tree_t *tree;
-	zio_t search;
+	zio_t *search;
 
 again:
 	ASSERT(MUTEX_HELD(>vq_lock));
@@ -817,10 +817,16 @@ again:
 	 * For FIFO queues (sync), issue the i/o with the lowest timestamp.
 	 */
 	tree = vdev_queue_class_tree(vq, p);
-	search.io_timestamp = 0;
-	search.io_offset = vq->vq_last_offset + 1;
-	VERIFY3P(avl_find(tree, , ), ==, NULL);
-	zio = avl_nearest(tree, idx, AVL_AFTER);
+	search = kmem_zalloc(sizeof (*search), KM_NOSLEEP);
+	if (search) {
+		search->io_offset = vq->vq_last_offset + 1;
+		VERIFY3P(avl_find(tree, , ), ==, NULL);
+		kmem_free(search, sizeof (*search));
+		zio = avl_nearest(tree, idx, AVL_AFTER);
+	} else {
+		/* Can't find nearest, fallback to first */
+		zio = NULL;
+	}
 	if (zio == NULL)
 		zio = avl_first(tree);
 	ASSERT3U(zio->io_priority, ==, p);



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

2020-06-21 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sun Jun 21 21:29:11 UTC 2020

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

Log Message:
If calling d_minphys on the parent disk device, make sure we use the
parent disk device's dev_t. Fixes zfs on wedges on ld(4).

XXX pullup-9


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 \
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.16 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.17
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.16	Wed Apr 29 04:30:40 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c	Sun Jun 21 21:29:11 2020
@@ -229,11 +229,12 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi
 	*/
 	{
 		struct buf buf = {
-			.b_dev = vp->v_rdev,
 			.b_bcount = MAXPHYS,
 		};
-		if (pdk && pdk->dk_driver && pdk->dk_driver->d_minphys)
+		if (pdk && pdk->dk_driver && pdk->dk_driver->d_minphys) {
+			buf.b_dev = pdk->dk_rawvp->v_rdev;
 			(*pdk->dk_driver->d_minphys)();
+		}
 		dvd->vd_maxphys = buf.b_bcount;
 	}
 



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

2020-06-19 Thread Jaromir Dolecek
Module Name:src
Committed By:   jdolecek
Date:   Fri Jun 19 14:13:23 UTC 2020

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

Log Message:
use pool_cache for (meta)data buffers also on NetBSD

this should generally slightly improve performance on MP systems, and
specifically for xbd(4) storage avoids slow unaligned I/O buffer handling

this change requires updated kernel, to allow up to SPA_MAXBLOCKSHIFT item
size for pools

fixes PR kern/55397 by Frank Kardel


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/external/cddl/osnet/dist/uts/common/fs/zfs/zio.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/zio.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zio.c:1.6 src/external/cddl/osnet/dist/uts/common/fs/zfs/zio.c:1.7
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zio.c:1.6	Tue May  7 08:49:59 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zio.c	Fri Jun 19 14:13:23 2020
@@ -46,7 +46,7 @@
 SYSCTL_DECL(_vfs_zfs);
 SYSCTL_NODE(_vfs_zfs, OID_AUTO, zio, CTLFLAG_RW, 0, "ZFS ZIO");
 #ifdef __NetBSD__
-const int zio_use_uma = 0;
+const int zio_use_uma = 1;
 #else
 #if defined(__amd64__)
 static int zio_use_uma = 1;
@@ -156,7 +156,6 @@ zio_init(void)
 	zio_link_cache = kmem_cache_create("zio_link_cache",
 	sizeof (zio_link_t), 0, NULL, NULL, NULL, NULL, NULL, 0);
 
-#ifndef __NetBSD__
 	if (!zio_use_uma)
 		goto out;
 
@@ -220,7 +219,6 @@ zio_init(void)
 			zio_data_buf_cache[c - 1] = zio_data_buf_cache[c];
 	}
 out:
-#endif /* __NetBSD__ */
 
 	zio_inject_init();
 
@@ -242,7 +240,6 @@ zio_fini(void)
 	kmem_cache_t *last_cache = NULL;
 	kmem_cache_t *last_data_cache = NULL;
 
-#ifndef __NetBSD__	
 	for (c = 0; c < SPA_MAXBLOCKSIZE >> SPA_MINBLOCKSHIFT; c++) {
 		if (zio_buf_cache[c] != last_cache) {
 			last_cache = zio_buf_cache[c];
@@ -256,7 +253,6 @@ zio_fini(void)
 		}
 		zio_data_buf_cache[c] = NULL;
 	}
-#endif /* __NetBSD__ */
 
 	kmem_cache_destroy(zio_link_cache);
 	kmem_cache_destroy(zio_cache);



CVS commit: src/external/cddl/osnet/usr.bin/ctfmerge

2020-06-07 Thread Santhosh Raju
Module Name:src
Committed By:   fox
Date:   Sun Jun  7 23:26:54 UTC 2020

Modified Files:
src/external/cddl/osnet/usr.bin/ctfmerge: Makefile

Log Message:
external/cddl/osnet: Suppress -Werror=stringop-truncation error

This logic correctly uses strncpy(3) to fully initialize a fixed-width field, 
and also ensures
NUL-termination on the next line as other users of the field expect.

Add -Werror=stringop-truncation to prevent build failure, when run with 
MKSANITIZER=yes.

Error was reported when build.sh was run with MKSANITIZER=yes flag.

Reviewed by: kamil@


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/external/cddl/osnet/usr.bin/ctfmerge/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/usr.bin/ctfmerge/Makefile
diff -u src/external/cddl/osnet/usr.bin/ctfmerge/Makefile:1.10 src/external/cddl/osnet/usr.bin/ctfmerge/Makefile:1.11
--- src/external/cddl/osnet/usr.bin/ctfmerge/Makefile:1.10	Mon May 28 21:05:11 2018
+++ src/external/cddl/osnet/usr.bin/ctfmerge/Makefile	Sun Jun  7 23:26:54 2020
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.10 2018/05/28 21:05:11 chs Exp $
+#	$NetBSD: Makefile,v 1.11 2020/06/07 23:26:54 fox Exp $
 
 # $FreeBSD: head/cddl/usr.bin/ctfmerge/Makefile 314654 2017-03-04 11:30:04Z ngie $
 
@@ -36,4 +36,6 @@ LDADD+=-lpthread
 DPADD+=${LIBPTHREAD}
 .endif
 
+COPTS.ctfmerge.c+=	${GCC_NO_STRINGOP_TRUNCATION}
+
 .include 



CVS commit: src/external/cddl/osnet

2020-05-26 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Tue May 26 08:39:27 UTC 2020

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

Log Message:
Replace vp->v_count with vrefcnt(vp) and
remove now unneeded "#define v_count ...".


To generate a diff of this commit:
cvs rdiff -u -r1.27 -r1.28 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c
cvs rdiff -u -r1.16 -r1.17 src/external/cddl/osnet/sys/sys/vnode.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_vfsops.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.27 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.28
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.27	Mon Apr 13 19:23:17 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c	Tue May 26 08:39:27 2020
@@ -2311,7 +2311,11 @@ zfsvfs_teardown(zfsvfs_t *zfsvfs, boolea
 	for (zp = list_head(>z_all_znodes); zp != NULL;
 	zp = list_next(>z_all_znodes, zp))
 		if (zp->z_sa_hdl) {
+#ifdef __NetBSD__
+			ASSERT(vrefcnt(ZTOV(zp)) >= 0);
+#else
 			ASSERT(ZTOV(zp)->v_count >= 0);
+#endif
 			zfs_znode_dmu_fini(zp);
 		}
 	mutex_exit(>z_znodes_lock);

Index: src/external/cddl/osnet/sys/sys/vnode.h
diff -u src/external/cddl/osnet/sys/sys/vnode.h:1.16 src/external/cddl/osnet/sys/sys/vnode.h:1.17
--- src/external/cddl/osnet/sys/sys/vnode.h:1.16	Mon Apr 13 19:23:17 2020
+++ src/external/cddl/osnet/sys/sys/vnode.h	Tue May 26 08:39:27 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: vnode.h,v 1.16 2020/04/13 19:23:17 ad Exp $	*/
+/*	$NetBSD: vnode.h,v 1.17 2020/05/26 08:39:27 hannken Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -135,7 +135,6 @@ typedef int (**vnodeops_t)(void *);
 #define	vop_fid_args	vop_vptofh_args
 #define	a_fid		a_fhp
 
-#define	v_count		v_usecount
 #define	v_object	v_uobj
 
 struct vop_vptofh_args {



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

2020-05-21 Thread Andrew Doran
Module Name:src
Committed By:   ad
Date:   Thu May 21 20:43:23 UTC 2020

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

Log Message:
Fix bugs in previous.


To generate a diff of this commit:
cvs rdiff -u -r1.68 -r1.69 \
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.68 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.69
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.68	Wed May 20 20:47:18 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Thu May 21 20:43:23 2020
@@ -5971,7 +5971,6 @@ zfs_netbsd_getpages(void *v)
 	} */ * const ap = v;
 
 	vnode_t *const vp = ap->a_vp;
-	off_t offset = ap->a_offset + (ap->a_centeridx << PAGE_SHIFT);
 	const int flags = ap->a_flags;
 	const bool async = (flags & PGO_SYNCIO) == 0;
 	const bool memwrite = (ap->a_access_type & VM_PROT_WRITE) != 0;
@@ -5983,12 +5982,13 @@ zfs_netbsd_getpages(void *v)
 	vfs_t *mp;
 	struct vm_page *pg;
 	caddr_t va;
-	int npages, found, err = 0;
+	int npages = *ap->a_count, found, err = 0;
 
 	if (flags & PGO_LOCKED) {
- 		uvn_findpages(uobj, ap->a_offset, ap->a_count, ap->a_m, NULL,
+ 		uvn_findpages(uobj, ap->a_offset, , ap->a_m, NULL,
 		UFP_NOWAIT | UFP_NOALLOC | UFP_NOBUSY |
 		(memwrite ? UFP_NORDONLY : 0));
+		KASSERT(npages == *ap->a_count);
 		if (memwrite) {
 			KASSERT(rw_write_held(uobj->vmobjlock));
 			for (int i = 0; i < npages; i++) {
@@ -6010,9 +6010,6 @@ zfs_netbsd_getpages(void *v)
 	if (async) {
 		return 0;
 	}
-	if (*ap->a_count != 1) {
-		return EBUSY;
-	}
 
 	mp = vp->v_mount;
 	fstrans_start(mp);
@@ -6024,18 +6021,20 @@ zfs_netbsd_getpages(void *v)
 	ZFS_VERIFY_ZP(zp);
 
 	rw_enter(rw, RW_WRITER);
-	if (offset >= vp->v_size) {
+	if (ap->a_offset + (npages << PAGE_SHIFT) > round_page(vp->v_size)) {
 		rw_exit(rw);
 		ZFS_EXIT(zfsvfs);
 		fstrans_done(mp);
 		return EINVAL;
 	}
-	npages = *ap->a_count;
-	uvn_findpages(uobj, offset, , ap->a_m, NULL, UFP_ALL);
+	uvn_findpages(uobj, ap->a_offset, , ap->a_m, NULL, UFP_ALL);
+	KASSERT(npages == *ap->a_count);
 
 	for (int i = 0; i < npages; i++) {
 		pg = ap->a_m[i];
 		if (pg->flags & PG_FAKE) {
+			voff_t offset = pg->offset;
+			KASSERT(pg->offset == ap->a_offset + (i << PAGE_SHIFT));
 			rw_exit(rw);
 
 			va = zfs_map_page(pg, S_WRITE);



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

2020-05-20 Thread Andrew Doran
Module Name:src
Committed By:   ad
Date:   Wed May 20 20:47:18 UTC 2020

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

Log Message:
zfs_netbsd_getpages:

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


To generate a diff of this commit:
cvs rdiff -u -r1.67 -r1.68 \
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.67 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.68
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.67	Sat May 16 18:31:46 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Wed May 20 20:47:18 2020
@@ -755,15 +755,14 @@ mappedread(vnode_t *vp, int nbytes, uio_
 			va = zfs_map_page(pp, S_READ);
 			error = uiomove(va + off, bytes, UIO_READ, uio);
 			zfs_unmap_page(pp, va);
+			rw_enter(rw, RW_WRITER);
+			uvm_page_unbusy(, 1);
+			rw_exit(rw);
 		} else {
 			error = dmu_read_uio_dbuf(sa_get_db(zp->z_sa_hdl),
 			uio, bytes);
 		}
 
-		rw_enter(rw, RW_WRITER);
-		uvm_page_unbusy(, 1);
-		rw_exit(rw);
-
 		len -= bytes;
 		off = 0;
 		if (error)
@@ -5987,9 +5986,24 @@ zfs_netbsd_getpages(void *v)
 	int npages, found, err = 0;
 
 	if (flags & PGO_LOCKED) {
-		*ap->a_count = 0;
-		ap->a_m[ap->a_centeridx] = NULL;
-		return EBUSY;
+ 		uvn_findpages(uobj, ap->a_offset, ap->a_count, ap->a_m, NULL,
+		UFP_NOWAIT | UFP_NOALLOC | UFP_NOBUSY |
+		(memwrite ? UFP_NORDONLY : 0));
+		if (memwrite) {
+			KASSERT(rw_write_held(uobj->vmobjlock));
+			for (int i = 0; i < npages; i++) {
+pg = ap->a_m[i];
+if (pg == NULL || pg == PGO_DONTCARE) {
+	continue;
+}
+if (uvm_pagegetdirty(pg) ==
+UVM_PAGE_STATUS_CLEAN) {
+	uvm_pagemarkdirty(pg,
+	UVM_PAGE_STATUS_UNKNOWN);
+}
+			}
+		}
+		return ap->a_m[ap->a_centeridx] == NULL ? EBUSY : 0;
 	}
 	rw_exit(rw);
 
@@ -6016,28 +6030,42 @@ zfs_netbsd_getpages(void *v)
 		fstrans_done(mp);
 		return EINVAL;
 	}
-	npages = 1;
-	pg = NULL;
-	uvn_findpages(uobj, offset, , , NULL, UFP_ALL);
+	npages = *ap->a_count;
+	uvn_findpages(uobj, offset, , ap->a_m, NULL, UFP_ALL);
 
-	if (pg->flags & PG_FAKE) {
-		rw_exit(rw);
+	for (int i = 0; i < npages; i++) {
+		pg = ap->a_m[i];
+		if (pg->flags & PG_FAKE) {
+			rw_exit(rw);
 
-		va = zfs_map_page(pg, S_WRITE);
-		err = dmu_read(zfsvfs->z_os, zp->z_id, offset, PAGE_SIZE,
-		va, DMU_READ_PREFETCH);
-		zfs_unmap_page(pg, va);
+			va = zfs_map_page(pg, S_WRITE);
+			err = dmu_read(zfsvfs->z_os, zp->z_id, offset,
+			PAGE_SIZE, va, DMU_READ_PREFETCH);
+			zfs_unmap_page(pg, va);
 
-		rw_enter(rw, RW_WRITER);
-		pg->flags &= ~(PG_FAKE);
-	}
+			rw_enter(rw, RW_WRITER);
+			if (err != 0) {
+for (i = 0; i < npages; i++) {
+	pg = ap->a_m[i];
+	if ((pg->flags & PG_FAKE) != 0) {
+		uvm_pagefree(pg);
+	} else {
+		uvm_page_unbusy(, 1);
+	}
+}
+memset(ap->a_m, 0, sizeof(ap->a_m[0]) *
+npages);
+break;
+			}
+			pg->flags &= ~(PG_FAKE);
+		}
 
-	if (memwrite && uvm_pagegetdirty(pg) == UVM_PAGE_STATUS_CLEAN) {
-		/* For write faults, start dirtiness tracking. */
-		uvm_pagemarkdirty(pg, UVM_PAGE_STATUS_UNKNOWN);
+		if (memwrite && uvm_pagegetdirty(pg) == UVM_PAGE_STATUS_CLEAN) {
+			/* For write faults, start dirtiness tracking. */
+			uvm_pagemarkdirty(pg, UVM_PAGE_STATUS_UNKNOWN);
+		}
 	}
 	rw_exit(rw);
-	ap->a_m[ap->a_centeridx] = pg;
 
 	ZFS_EXIT(zfsvfs);
 	fstrans_done(mp);



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

2020-05-15 Thread Andrew Doran
Module Name:src
Committed By:   ad
Date:   Fri May 15 23:57:17 UTC 2020

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

Log Message:
Bump PROF_ARTIFICIAL_FRAMES to 4 now that cyclics are run from statclock().


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/external/cddl/osnet/dev/profile/profile.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/profile/profile.c
diff -u src/external/cddl/osnet/dev/profile/profile.c:1.10 src/external/cddl/osnet/dev/profile/profile.c:1.11
--- src/external/cddl/osnet/dev/profile/profile.c:1.10	Fri Jun 29 11:33:46 2018
+++ src/external/cddl/osnet/dev/profile/profile.c	Fri May 15 23:57:17 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: profile.c,v 1.10 2018/06/29 11:33:46 kamil Exp $	*/
+/*	$NetBSD: profile.c,v 1.11 2020/05/15 23:57:17 ad Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -169,7 +169,7 @@ struct profile_probe_percpu;
 #endif /* __FreeBSD__ */
 
 #ifdef __NetBSD__
-#define	PROF_ARTIFICIAL_FRAMES	3
+#define	PROF_ARTIFICIAL_FRAMES	4
 #endif
 
 typedef struct profile_probe {



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

2020-05-12 Thread Chuck Silvers
Module Name:src
Committed By:   chs
Date:   Wed May 13 05:52:54 UTC 2020

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

Log Message:
fix the handling in putpage of the page containing EOF.


To generate a diff of this commit:
cvs rdiff -u -r1.65 -r1.66 \
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.65 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.66
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.65	Thu May  7 09:12:03 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Wed May 13 05:52:54 2020
@@ -6066,9 +6066,29 @@ zfs_putapage(vnode_t *vp, page_t **pp, i
 		goto out_unbusy;
 	}
 
+	/*
+	 * Calculate the length and assert that no whole pages are past EOF.
+	 * This check is equivalent to "off + len <= round_page(zp->z_size)",
+	 * with gyrations to avoid signed integer overflow.
+	 */
+
 	off = pp[0]->offset;
 	len = count * PAGESIZE;
-	KASSERT(off + len <= round_page(zp->z_size));
+	KASSERT(off <= zp->z_size);
+	KASSERT(len <= round_page(zp->z_size));
+	KASSERT(off <= round_page(zp->z_size) - len);
+
+	/*
+	 * If EOF is within the last page, reduce len to avoid writing past
+	 * the file size in the ZFS buffer.  Assert that
+	 * "off + len <= zp->z_size", again avoiding signed integer overflow.
+	 */
+
+	if (len > zp->z_size - off) {
+		len = zp->z_size - off;
+	}
+	KASSERT(len <= zp->z_size);
+	KASSERT(off <= zp->z_size - len);
 
 	if (zfs_owner_overquota(zfsvfs, zp, B_FALSE) ||
 	zfs_owner_overquota(zfsvfs, zp, B_TRUE)) {



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

2020-05-07 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Thu May  7 09:13:06 UTC 2020

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

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


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

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

Modified files:

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



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

2020-05-07 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Thu May  7 09:12:03 UTC 2020

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

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

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


To generate a diff of this commit:
cvs rdiff -u -r1.64 -r1.65 \
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.64 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.65
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.64	Sat Mar 14 20:45:23 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Thu May  7 09:12:03 2020
@@ -5858,11 +5858,16 @@ zfs_netbsd_reclaim(void *v)
 			zp->z_atime_dirty = 0;
 			dmu_tx_commit(tx);
 		}
-
-		if (zfsvfs->z_os->os_sync == ZFS_SYNC_ALWAYS)
-			zil_commit(zfsvfs->z_log, zp->z_id);
 	}
 
+	/*
+	 * Operation zfs_znode.c::zfs_zget_cleaner() depends on this
+	 * zil_commit() as a barrier to guarantee the znode cannot
+	 * get freed before its log entries are resolved.
+	 */
+	if (zfsvfs->z_log)
+		zil_commit(zfsvfs->z_log, zp->z_id);
+
 	if (zp->z_sa_hdl == NULL)
 		zfs_znode_free(zp);
 	else



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

2020-05-07 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Thu May  7 09:12:32 UTC 2020

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

Log Message:
Revert Rev. 1.31 as it is no longer possible for the handle to be NULL.


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

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

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.31 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.32
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.31	Fri Mar 20 08:26:01 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c	Thu May  7 09:12:31 2020
@@ -1315,11 +1315,7 @@ zfs_zget_cleaner(zfsvfs_t *zfsvfs, uint6
 		return (SET_ERROR(EINVAL));
 	}
 	hdl = dmu_buf_get_user(db);
-	if (hdl == NULL) {
-		sa_buf_rele(db, NULL);
-		ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num);
-		return (SET_ERROR(EINVAL));
-	}
+	ASSERT3P(hdl, !=, NULL);
 	zp = sa_get_userdata(hdl);
 	ASSERT3U(zp->z_id, ==, obj_num);
 	sa_buf_rele(db, NULL);



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

2020-04-28 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Apr 29 04:30:40 UTC 2020

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

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

Fixes:

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

XXX pullup-9


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 \
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.15 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.16
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.15	Mon Mar  2 16:01:56 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c	Wed Apr 29 04:30:40 2020
@@ -228,7 +228,10 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi
 		dvd->vd_maxphys = (pdk ? disk_maxphys(pdk) : MACHINE_MAXPHYS);
 	*/
 	{
-		struct buf buf = { .b_bcount = MAXPHYS };
+		struct buf buf = {
+			.b_dev = vp->v_rdev,
+			.b_bcount = MAXPHYS,
+		};
 		if (pdk && pdk->dk_driver && pdk->dk_driver->d_minphys)
 			(*pdk->dk_driver->d_minphys)();
 		dvd->vd_maxphys = buf.b_bcount;



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

2020-04-04 Thread Michael van Elst
Module Name:src
Committed By:   mlelstv
Date:   Sat Apr  4 13:45:22 UTC 2020

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

Log Message:
When collecting zpool devices, skip disks with wedges so that a
concurrent test of a wedge on that disk doesn't fail.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
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.5 src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c:1.6
--- src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c:1.5	Tue Aug 20 08:11:21 2019
+++ src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c	Sat Apr  4 13:45:22 2020
@@ -1095,8 +1095,16 @@ zpool_open_func(void *arg)
 	}
 #endif /* __FreeBSD__ */
 #ifdef __NetBSD__
+	struct dkwedge_list dkwl;
 	off_t size;
 
+	/* skip devices with wedges */
+	if (native_ioctl(fd, DIOCLWEDGES, ) == 0 &&
+	dkwl.dkwl_nwedges > 0) {
+		(void) close(fd);
+		return;
+	}
+
 	if (native_ioctl(fd, DIOCGMEDIASIZE, ) < 0 ||
 	size < SPA_MINDEVSIZE) {
 		(void) close(fd);



CVS commit: src/external/cddl/osnet/usr.sbin/dtrace

2020-04-04 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sat Apr  4 13:15:48 UTC 2020

Modified Files:
src/external/cddl/osnet/usr.sbin/dtrace: Makefile

Log Message:
Add libproc


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/external/cddl/osnet/usr.sbin/dtrace/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/usr.sbin/dtrace/Makefile
diff -u src/external/cddl/osnet/usr.sbin/dtrace/Makefile:1.13 src/external/cddl/osnet/usr.sbin/dtrace/Makefile:1.14
--- src/external/cddl/osnet/usr.sbin/dtrace/Makefile:1.13	Fri Jun 29 07:33:47 2018
+++ src/external/cddl/osnet/usr.sbin/dtrace/Makefile	Sat Apr  4 09:15:48 2020
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.13 2018/06/29 11:33:47 kamil Exp $
+#	$NetBSD: Makefile,v 1.14 2020/04/04 13:15:48 christos Exp $
 
 # $FreeBSD: head/cddl/usr.sbin/dtrace/Makefile 314654 2017-03-04 11:30:04Z ngie $
 
@@ -43,6 +43,7 @@ LDFLAGS+=	-pthread
 PROGDPLIBS+=	ctf ${.CURDIR}/../../lib/libctf
 PROGDPLIBS+=	dtrace ${.CURDIR}/../../lib/libdtrace
 PROGDPLIBS+=	elf ${NETBSDSRCDIR}/external/bsd/elftoolchain/lib/libelf
+PROGDPLIBS+=	proc ${NETBSDSRCDIR}/external/bsd/libproc/lib
 PROGDPLIBS+=	y ${NETBSDSRCDIR}/lib/liby
 PROGDPLIBS+=	l ${NETBSDSRCDIR}/external/bsd/flex/lib
 PROGDPLIBS+=	z ${NETBSDSRCDIR}/lib/libz



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

2020-03-20 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Fri Mar 20 08:26:01 UTC 2020

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

Log Message:
With zfs_netbsd_reclaim() no longer doing an unconditional
zil commit dmu_buf_get_user() may return a NULL handle when
the znode already disappeared.


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

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

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.30 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.31
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.30	Sun Feb 23 15:46:38 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c	Fri Mar 20 08:26:01 2020
@@ -1315,7 +1315,11 @@ zfs_zget_cleaner(zfsvfs_t *zfsvfs, uint6
 		return (SET_ERROR(EINVAL));
 	}
 	hdl = dmu_buf_get_user(db);
-	ASSERT3P(hdl, !=, NULL);
+	if (hdl == NULL) {
+		sa_buf_rele(db, NULL);
+		ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num);
+		return (SET_ERROR(EINVAL));
+	}
 	zp = sa_get_userdata(hdl);
 	ASSERT3U(zp->z_id, ==, obj_num);
 	sa_buf_rele(db, NULL);



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

2020-03-16 Thread Santhosh Raju
Module Name:src
Committed By:   fox
Date:   Tue Mar 17 01:36:29 UTC 2020

Modified Files:
src/external/cddl/osnet/lib/libdtrace: Makefile

Log Message:
external/cddl/osnet: Do not suppress the warning output for libdtrace.

Changed -Wno-maybe-uninitialized to -Wno-error=maybe-uninitialized to allow
warnings to be printed out during build.

Suggested by: christos@


To generate a diff of this commit:
cvs rdiff -u -r1.27 -r1.28 src/external/cddl/osnet/lib/libdtrace/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/lib/libdtrace/Makefile
diff -u src/external/cddl/osnet/lib/libdtrace/Makefile:1.27 src/external/cddl/osnet/lib/libdtrace/Makefile:1.28
--- src/external/cddl/osnet/lib/libdtrace/Makefile:1.27	Tue Mar 17 00:50:12 2020
+++ src/external/cddl/osnet/lib/libdtrace/Makefile	Tue Mar 17 01:36:29 2020
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.27 2020/03/17 00:50:12 fox Exp $
+#	$NetBSD: Makefile,v 1.28 2020/03/17 01:36:29 fox Exp $
 
 # $FreeBSD: head/cddl/lib/libdtrace/Makefile 314654 2017-03-04 11:30:04Z ngie $
 
@@ -96,7 +96,7 @@ COPTS.dt_isadep.c	+= -Wno-unused-variabl
 
 .if (${MKLIBCSANITIZER:Uno} == "yes")
 .if (${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} == 8)
-COPTS.dt_proc.c+=	-Wno-maybe-uninitialized
+COPTS.dt_proc.c+=	-Wno-error=maybe-uninitialized
 .endif
 .endif
 



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

2020-03-16 Thread Santhosh Raju
Module Name:src
Committed By:   fox
Date:   Tue Mar 17 00:54:03 UTC 2020

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

Log Message:
external/cddl/osnet: Fix -Werror=maybe-uninitialized error in zfs_acl.c.

Detected by build.sh with MKLIBCSANITIZER=yes and fixed upstream, pick only the 
fix from the commit.

Upstream commits

https://github.com/zfsonfreebsd/ZoF/commit/100a91aa3e9773f2a2a373c5cb066b52c780716c
https://github.com/openzfs/zfs/commit/100a91aa3e9773f2a2a373c5cb066b52c780716c

Cherry-pick:
>From 100a91aa3e9773f2a2a373c5cb066b52c780716c Mon Sep 17 00:00:00 2001
From: Chunwei Chen 
Date: Fri, 17 Jun 2016 17:36:01 -0700
Subject: [PATCH] Fix NFS credential

Signed-off-by: Chunwei Chen 
Signed-off-by: Brian Behlendorf 
Closes #4772
Closes #4758

Reviewed by: kamil@


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_acl.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_acl.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_acl.c:1.5 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_acl.c:1.6
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_acl.c:1.5	Fri Sep  7 02:25:40 2018
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_acl.c	Tue Mar 17 00:54:03 2020
@@ -1598,7 +1598,7 @@ zfs_acl_ids_create(znode_t *dzp, int fla
 	int		error;
 	zfsvfs_t	*zfsvfs = dzp->z_zfsvfs;
 	zfs_acl_t	*paclp;
-	gid_t		gid;
+	gid_t		gid = vap->va_gid;
 	boolean_t	trim = B_FALSE;
 	boolean_t	inherited = B_FALSE;
 



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

2020-03-16 Thread Santhosh Raju
Module Name:src
Committed By:   fox
Date:   Tue Mar 17 00:50:12 UTC 2020

Modified Files:
src/external/cddl/osnet/lib/libdtrace: Makefile

Log Message:
external/cddl/osnet: Supress -Werror=maybe-uninitialized error in libdtrace.

It looks like this is a false positive, since the section of code triggering 
the error

external/cddl/osnet/dist/lib/libdtrace/common/dt_proc.c:400:42:

is only accessed after "err" is initialized.

Error was reported when build.sh was run with MKLIBCSANITIZER=yes flag.

Reviewed by: kamil@


To generate a diff of this commit:
cvs rdiff -u -r1.26 -r1.27 src/external/cddl/osnet/lib/libdtrace/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/lib/libdtrace/Makefile
diff -u src/external/cddl/osnet/lib/libdtrace/Makefile:1.26 src/external/cddl/osnet/lib/libdtrace/Makefile:1.27
--- src/external/cddl/osnet/lib/libdtrace/Makefile:1.26	Tue Dec  3 22:10:56 2019
+++ src/external/cddl/osnet/lib/libdtrace/Makefile	Tue Mar 17 00:50:12 2020
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.26 2019/12/03 22:10:56 jmcneill Exp $
+#	$NetBSD: Makefile,v 1.27 2020/03/17 00:50:12 fox Exp $
 
 # $FreeBSD: head/cddl/lib/libdtrace/Makefile 314654 2017-03-04 11:30:04Z ngie $
 
@@ -94,6 +94,12 @@ COPTS.dt_options.c	+= -Wno-parentheses
 COPTS.dt_pid.c		+= ${${ACTIVE_CC} == "gcc" :? -Wno-unused-but-set-variable :}
 COPTS.dt_isadep.c	+= -Wno-unused-variable
 
+.if (${MKLIBCSANITIZER:Uno} == "yes")
+.if (${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} == 8)
+COPTS.dt_proc.c+=	-Wno-maybe-uninitialized
+.endif
+.endif
+
 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
 CPPFLAGS+=	-I${OPENSOLARIS_SYS_DISTDIR}/uts/intel
 CPPFLAGS+=	-I${.CURDIR}/../../dev/dtrace/x86



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

2020-03-09 Thread Santhosh Raju
Module Name:src
Committed By:   fox
Date:   Mon Mar  9 15:40:50 UTC 2020

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

Log Message:
external/cddl/osnet: Fix possible null pointer access.

Detected by UBSan and fixed upstream, pick only the fix from the commit.

Cherry-pick:
>From 928e8ad47d3478a3d5d01f0dd6ae74a9371af65e Mon Sep 17 00:00:00 2001
From: Serapheim Dimitropoulos 
Date: Wed, 20 Feb 2019 09:59:57 -0800
Subject: [PATCH] Introduce auxiliary metaslab histograms

Reviewed by: Paul Dagnelie 
Reviewed-by: Brian Behlendorf 
Reviewed by: Matt Ahrens 
Signed-off-by: Serapheim Dimitropoulos 
Closes #8358

Reviewed by: kamil@


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.3 -r1.2 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/metaslab.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/metaslab.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/metaslab.c:1.1.1.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/metaslab.c:1.2
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/metaslab.c:1.1.1.3	Mon May 28 20:52:58 2018
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/metaslab.c	Mon Mar  9 15:40:50 2020
@@ -3370,7 +3370,7 @@ metaslab_alloc(spa_t *spa, metaslab_clas
 zio_alloc_list_t *zal, zio_t *zio)
 {
 	dva_t *dva = bp->blk_dva;
-	dva_t *hintdva = hintbp->blk_dva;
+	dva_t *hintdva = (hintbp != NULL) ? hintbp->blk_dva : NULL;
 	int error = 0;
 
 	ASSERT(bp->blk_birth == 0);



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

2020-03-09 Thread Santhosh Raju
Module Name:src
Committed By:   fox
Date:   Mon Mar  9 15:37:46 UTC 2020

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

Log Message:
external/cddl/osnet: Fix possible signed integer overflow

Detected by UBSan and fixed upstream

Cherry-pick:
>From 05852b3467b44cdf88541ec67624cd1f5f2ded1d Mon Sep 17 00:00:00 2001
From: luozhengzheng 
Date: Fri, 14 Oct 2016 05:25:05 +0800
Subject: [PATCH] Fix coverity defects: CID 147571, 147574

CID 147571: Unintentional integer overflow (OVERFLOW_BEFORE_WIDEN)
CID 147574: Unintentional integer overflow (OVERFLOW_BEFORE_WIDEN)

Reviewed-by: Brian Behlendorf 
Signed-off-by: luozhengzheng 
Closes #5268

Reviewed by: kamil@


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c
cvs rdiff -u -r1.10 -r1.11 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.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.4 src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c:1.5
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c:1.4	Fri Jun 21 10:59:50 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c	Mon Mar  9 15:37:46 2020
@@ -412,7 +412,7 @@ dmu_tx_count_dnode(dmu_tx_hold_t *txh)
 	dnode_t *dn = txh->txh_dnode;
 	dnode_t *mdn = DMU_META_DNODE(txh->txh_tx->tx_objset);
 	uint64_t space = mdn->dn_datablksz +
-	((mdn->dn_nlevels-1) << mdn->dn_indblkshift);
+	((uint64_t)(mdn->dn_nlevels-1) << mdn->dn_indblkshift);
 
 	if (dn && dn->dn_dbuf->db_blkptr &&
 	dsl_dataset_block_freeable(dn->dn_objset->os_dsl_dataset,

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.10 src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c:1.11
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c:1.10	Tue Jul 23 07:46:22 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c	Mon Mar  9 15:37:46 2020
@@ -6293,7 +6293,7 @@ spa_async_tasks_pending(spa_t *spa)
 	} else {
 		config_task_suspended =
 		(gethrtime() - spa->spa_ccw_fail_time) <
-		(zfs_ccw_retry_interval * NANOSEC);
+		((hrtime_t)zfs_ccw_retry_interval * NANOSEC);
 	}
 
 	return (non_config_tasks || (config_task && !config_task_suspended));



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

2020-03-08 Thread Michał Górny
Module Name:src
Committed By:   mgorny
Date:   Sun Mar  8 22:11:48 UTC 2020

Modified Files:
src/external/cddl/osnet/lib/libdtrace: errno.d
Added Files:
src/external/cddl/osnet/lib/libdtrace: make-errno-d.awk

Log Message:
Update dtrace errno.d mapping and add a script for it

Add a new script to autogenerate errno.d from errno.h, and use it
to regenerate the list to match NetBSD errno codes.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/lib/libdtrace/errno.d
cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/lib/libdtrace/make-errno-d.awk

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/lib/libdtrace/errno.d
diff -u src/external/cddl/osnet/lib/libdtrace/errno.d:1.3 src/external/cddl/osnet/lib/libdtrace/errno.d:1.4
--- src/external/cddl/osnet/lib/libdtrace/errno.d:1.3	Mon May 28 21:05:09 2018
+++ src/external/cddl/osnet/lib/libdtrace/errno.d	Sun Mar  8 22:11:48 2020
@@ -1,4 +1,10 @@
-/*	$NetBSD: errno.d,v 1.3 2018/05/28 21:05:09 chs Exp $	*/
+/*	$NetBSD: errno.d,v 1.4 2020/03/08 22:11:48 mgorny Exp $	*/
+
+/*
+ * This file is autogenerated.  Please call:
+ *   awk make-errno-d.awk < ../../../../../sys/sys/errno.h
+ * to get new data.
+ */
 
 /*
  * CDDL HEADER START
@@ -122,8 +128,6 @@ inline int ESOCKTNOSUPPORT = 44;
 #pragma D binding "1.0" ESOCKTNOSUPPORT
 inline int EOPNOTSUPP = 45;
 #pragma D binding "1.0" EOPNOTSUPP
-inline int ENOTSUP = EOPNOTSUPP;
-#pragma D binding "1.0" ENOTSUP
 inline int EPFNOSUPPORT = 46;
 #pragma D binding "1.0" EPFNOSUPPORT
 inline int EAFNOSUPPORT = 47;
@@ -202,29 +206,43 @@ inline int ENOMSG = 83;
 #pragma D binding "1.0" ENOMSG
 inline int EOVERFLOW = 84;
 #pragma D binding "1.0" EOVERFLOW
-inline int ECANCELED = 85;
-#pragma D binding "1.0" ECANCELED
-inline int EILSEQ = 86;
+inline int EILSEQ = 85;
 #pragma D binding "1.0" EILSEQ
-inline int ENOATTR = 87;
-#pragma D binding "1.0" ENOATTR
-inline int EDOOFUS = 88;
-#pragma D binding "1.0" EDOOFUS
-inline int EBADMSG = 89;
+inline int ENOTSUP = 86;
+#pragma D binding "1.0" ENOTSUP
+inline int ECANCELED = 87;
+#pragma D binding "1.0" ECANCELED
+inline int EBADMSG = 88;
 #pragma D binding "1.0" EBADMSG
-inline int EMULTIHOP = 90;
+inline int ENODATA = 89;
+#pragma D binding "1.0" ENODATA
+inline int ENOSR = 90;
+#pragma D binding "1.0" ENOSR
+inline int ENOSTR = 91;
+#pragma D binding "1.0" ENOSTR
+inline int ETIME = 92;
+#pragma D binding "1.0" ETIME
+inline int ENOATTR = 93;
+#pragma D binding "1.0" ENOATTR
+inline int EMULTIHOP = 94;
 #pragma D binding "1.0" EMULTIHOP
-inline int ENOLINK = 91;
+inline int ENOLINK = 95;
 #pragma D binding "1.0" ENOLINK
-inline int EPROTO = 92;
+inline int EPROTO = 96;
 #pragma D binding "1.0" EPROTO
-inline int ELAST = 92;
+inline int EOWNERDEAD = 97;
+#pragma D binding "1.0" EOWNERDEAD
+inline int ENOTRECOVERABLE = 98;
+#pragma D binding "1.0" ENOTRECOVERABLE
+inline int ELAST = 98;
 #pragma D binding "1.0" ELAST
-inline int ERESTART = -1;
-#pragma D binding "1.0" ERESTART
 inline int EJUSTRETURN = -2;
 #pragma D binding "1.0" EJUSTRETURN
-inline int ENOIOCTL = -3;
-#pragma D binding "1.0" ENOIOCTL
-inline int EDIRIOCTL = -4;
-#pragma D binding "1.0" EDIRIOCTL
+inline int ERESTART = -3;
+#pragma D binding "1.0" ERESTART
+inline int EPASSTHROUGH = -4;
+#pragma D binding "1.0" EPASSTHROUGH
+inline int EDUPFD = -5;
+#pragma D binding "1.0" EDUPFD
+inline int EMOVEFD = -6;
+#pragma D binding "1.0" EMOVEFD

Added files:

Index: src/external/cddl/osnet/lib/libdtrace/make-errno-d.awk
diff -u /dev/null src/external/cddl/osnet/lib/libdtrace/make-errno-d.awk:1.1
--- /dev/null	Sun Mar  8 22:11:48 2020
+++ src/external/cddl/osnet/lib/libdtrace/make-errno-d.awk	Sun Mar  8 22:11:48 2020
@@ -0,0 +1,45 @@
+BEGIN {
+	print "/*	$NetBSD: make-errno-d.awk,v 1.1 2020/03/08 22:11:48 mgorny Exp $	*/"
+	print ""
+	print "/*"
+	print " * This file is autogenerated.  Please call:"
+	print " *   awk make-errno-d.awk < ../../../../../sys/sys/errno.h"
+	print " * to get new data."
+	print " */"
+	print ""
+	print "/*"
+	print " * CDDL HEADER START"
+	print " *"
+	print " * The contents of this file are subject to the terms of the"
+	print " * Common Development and Distribution License, Version 1.0 only"
+	print " * (the \"License\").  You may not use this file except in compliance"
+	print " * with the License."
+	print " *"
+	print " * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE"
+	print " * or http://www.opensolaris.org/os/licensing.;
+	print " * See the License for the specific language governing permissions"
+	print " * and limitations under the License."
+	print " *"
+	print " * When distributing Covered Code, include this CDDL HEADER in each"
+	print " * file and include the License file at usr/src/OPENSOLARIS.LICENSE."
+	print " * If applicable, add the following below this CDDL HEADER, with the"
+	print " * 

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

2020-03-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Mar  8 19:59:45 UTC 2020

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

Log Message:
Avoid unnecessary zil_commit on rm.

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

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

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

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


To generate a diff of this commit:
cvs rdiff -u -r1.62 -r1.63 \
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.62 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.63
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.62	Sun Feb 23 15:46:38 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Sun Mar  8 19:59:45 2020
@@ -5858,10 +5858,10 @@ zfs_netbsd_reclaim(void *v)
 			zp->z_atime_dirty = 0;
 			dmu_tx_commit(tx);
 		}
-	}
 
-	if (zfsvfs->z_log)
-		zil_commit(zfsvfs->z_log, zp->z_id);
+		if (zfsvfs->z_os->os_sync == ZFS_SYNC_ALWAYS)
+			zil_commit(zfsvfs->z_log, zp->z_id);
+	}
 
 	if (zp->z_sa_hdl == NULL)
 		zfs_znode_free(zp);



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

2020-03-05 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Thu Mar  5 16:05:06 UTC 2020

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

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

The x86 (and arm) definitions of struct kmutex are no longer defined
differently depending on __MUTEX_PRIVATE.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
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.5 src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c:1.6
--- src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c:1.5	Tue Jul 16 07:27:35 2019
+++ src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c	Thu Mar  5 16:05:05 2020
@@ -280,48 +280,6 @@ fix_small_cpu_struct(tdata_t *td, size_t
 #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;
-	}
-}
-
-/*
  * XXX: A crude hack to bring down the number of types for a
  * GENRIC kernel below 2**15-1 (from ~34000 to ~29800).
  *
@@ -377,7 +335,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/sys/kern

2020-03-02 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Tue Mar  3 06:44:38 UTC 2020

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

Log Message:
Use vpanic, not vprintf and then panic.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/sys/kern/printf.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/printf.c
diff -u src/external/cddl/osnet/sys/kern/printf.c:1.2 src/external/cddl/osnet/sys/kern/printf.c:1.3
--- src/external/cddl/osnet/sys/kern/printf.c:1.2	Mon May 28 21:05:09 2018
+++ src/external/cddl/osnet/sys/kern/printf.c	Tue Mar  3 06:44:38 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: printf.c,v 1.2 2018/05/28 21:05:09 chs Exp $	*/
+/*	$NetBSD: printf.c,v 1.3 2020/03/03 06:44:38 riastradh Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -41,10 +41,8 @@ vcmn_err(int ce, const char *fmt, va_lis
 	char buf[256];
 	size_t len;
 
-	if (ce == CE_PANIC) {
-		vprintf(fmt, adx);
-		panic("panic");
-	}
+	if (ce == CE_PANIC)
+		vpanic(fmt, adx);
 
 	if ((uint_t)ce < CE_IGNORE) {
 		strcpy(buf, ce_prefix[ce]);



CVS commit: src/external/cddl/osnet/dist/common/nvpair

2020-03-02 Thread Kamil Rytarowski
Module Name:src
Committed By:   kamil
Date:   Mon Mar  2 15:45:33 UTC 2020

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

Log Message:
Fix undefined behavior in misaligned pointer usage

Detected by UBSan and already fixed upstream.

Cherry-pick:
>From aa0218d6a12814fac50b287214f9f3b0b99e11b1 Mon Sep 17 00:00:00 2001
From: Brian Behlendorf 
Date: Tue, 7 Jan 2014 23:24:37 +0100
Subject: [PATCH] Fix nvlist 'Bus Error' for Sparc

The mis-aligned memory accesses in nvpair_native_embedded() and
nvpair_native_embedded_array() will cause a 'Bus Error' for
architectures such as Sparc which not fully byte addressible.
To avoid this issue care is taken to avoid dereferencing the
potentially mis-aligned packed nvlist_t.

Signed-off-by: Brian Behlendorf 
Signed-off-by: Ned Bass 
Signed-off-by: marku89 
Issue #1700


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dist/common/nvpair/nvpair.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/common/nvpair/nvpair.c
diff -u src/external/cddl/osnet/dist/common/nvpair/nvpair.c:1.4 src/external/cddl/osnet/dist/common/nvpair/nvpair.c:1.5
--- src/external/cddl/osnet/dist/common/nvpair/nvpair.c:1.4	Mon May 28 21:05:04 2018
+++ src/external/cddl/osnet/dist/common/nvpair/nvpair.c	Mon Mar  2 15:45:33 2020
@@ -2586,7 +2586,8 @@ nvpair_native_embedded(nvstream_t *nvs, 
 		 * structure. The address may not be aligned, so we have
 		 * to use bzero.
 		 */
-		bzero(>nvl_priv, sizeof (packed->nvl_priv));
+		bzero((char *)packed + offsetof(nvlist_t, nvl_priv),
+		sizeof (uint64_t));
 	}
 
 	return (nvs_embedded(nvs, EMBEDDED_NVL(nvp)));
@@ -2614,7 +2615,8 @@ nvpair_native_embedded_array(nvstream_t 
 			 * packed structure. The address may not be aligned,
 			 * so we have to use bzero.
 			 */
-			bzero(>nvl_priv, sizeof (packed->nvl_priv));
+			bzero((char *)packed + offsetof(nvlist_t, nvl_priv),
+			sizeof (uint64_t));
 	}
 
 	return (nvs_embedded_nvl_array(nvs, nvp, NULL));



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

2020-02-29 Thread Michael van Elst
Module Name:src
Committed By:   mlelstv
Date:   Sat Feb 29 17:15:43 UTC 2020

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

Log Message:
Use utility functions to handle disk geometry.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 \
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.13 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.14
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.13	Sun Dec  1 20:25:31 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c	Sat Feb 29 17:15:43 2020
@@ -35,7 +35,6 @@
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 
@@ -147,10 +146,11 @@ 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;
+	uint64_t numsecs;
+	unsigned secsize;
+	struct disk *pdk;
+	struct dkwedge_info dkw;
 
 	/*
 	 * We must have a pathname, and it must be absolute.
@@ -219,33 +219,15 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi
 		return (SET_ERROR(EINVAL));
 	}
 
+	pdk = NULL;
+	if (getdiskinfo(vp, ) == 0)
+		pdk = disk_find(dkw.dkw_parent);
+
 	/* XXXNETBSD Once tls-maxphys gets merged this block becomes:
-		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 };
-
-		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;
-			}
-			buf.b_dev = vp->v_rdev;
-		}
 		if (pdk && pdk->dk_driver && pdk->dk_driver->d_minphys)
 			(*pdk->dk_driver->d_minphys)();
 		dvd->vd_maxphys = buf.b_bcount;
@@ -268,32 +250,22 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi
 	dvd->vd_vp = vp;
 
 skip_open:
-	/*
-	 * Determine the actual size of the device.
-	 * Try wedge info first as it supports larger disks.
-	 */
-	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);
+	error = getdisksize(vp, , );
 	if (error != 0) {
 		vd->vdev_stat.vs_aux = VDEV_AUX_OPEN_FAILED;
 		return (SET_ERROR(error));
 	}
-	*psize = pinfo.pi_size * pinfo.pi_secsize;
+
+	*psize = numsecs * secsize;
 	*max_psize = *psize;
 
-	*ashift = highbit(MAX(pinfo.pi_secsize, SPA_MINBLOCKSIZE)) - 1;
+	*ashift = highbit(MAX(secsize, SPA_MINBLOCKSIZE)) - 1;
 	*pashift = *ashift;
-	vd->vdev_wholedisk = (pinfo.pi_offset == 0); /* XXXNETBSD */
+
+	vd->vdev_wholedisk = 0;
+	if (getdiskinfo(vp, ) != 0 &&
+	dkw.dkw_offset == 0 && dkw.dkw_size == numsecs)
+		vd->vdev_wholedisk = 1,
 
 	/*
 	 * Clear the nowritecache bit, so that on a vdev_reopen() we will



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

2020-02-29 Thread Michael van Elst
Module Name:src
Committed By:   mlelstv
Date:   Sat Feb 29 17:03:33 UTC 2020

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

Log Message:
Fix disk geometry calculation. Add DIOCGPARTINFO to support
getdisksize() used by other drivers, filesystems and specfs.


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

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.12 src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c:1.13
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c:1.12	Wed May 22 08:47:02 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c	Sat Feb 29 17:03:33 2020
@@ -72,6 +72,9 @@
 #include 
 #include 
 #include 
+#ifdef __NetBSD__
+#include 
+#endif
 #include 
 #include 
 #include 
@@ -316,12 +319,17 @@ zvol_size_changed(zvol_state_t *zv, uint
 #endif /* __FreeBSD__ */
 #ifdef __NetBSD__
 	struct disk_geom *dg = >zv_dk.dk_geom;
+	objset_t *os = zv->zv_objset;
+	spa_t *spa = dmu_objset_spa(os);
+	unsigned secsize;
 
 	zv->zv_volsize = volsize;
 
+	secsize = MAX(DEV_BSIZE, 1U << spa->spa_max_ashift);
+
 	memset(dg, 0, sizeof(*dg));
-	dg->dg_secsize = DEV_BSIZE; /* XXX 512? */
-	dg->dg_secperunit = zv->zv_volsize / dg->dg_secsize;;
+	dg->dg_secsize = secsize;
+	dg->dg_secperunit = volsize / secsize;
 	disk_set_info(NULL, >zv_dk, "ZVOL");
 #endif
 }
@@ -3589,19 +3597,47 @@ zvol_ioctl(dev_t dev, int cmd, intptr_t 
 	case DIOCGWEDGEINFO:
 	{
 		struct dkwedge_info *dkw = (void *) arg;
-		
+		struct disk_geom *dg = >zv_dk.dk_geom;
+
 		memset(dkw, 0, sizeof(*dkw));
 		strlcpy(dkw->dkw_devname, zv->zv_name,
 		sizeof(dkw->dkw_devname));
+
+		/*
+		 * dkw_parent is interpreted as disk device name by the kernel
+		 * to locate the disk driver and its geometry data. The faked
+		 * name "ZFS" must never match a device name. The kernel will
+		 * then call DIOCGPARTINFO below to retrieve the missing
+		 * information.
+		 *
+		 * Userland will also be confused, but it can use the
+		 * proplib based DIOCGDISKINFO to get the geometry
+		 * information.
+		 */
 		strlcpy(dkw->dkw_parent, "ZFS", sizeof(dkw->dkw_parent));
-		
+
 		dkw->dkw_offset = 0;
-		dkw->dkw_size = zv->zv_volsize / DEV_BSIZE;
+		dkw->dkw_size = dg->dg_secperunit;
 		strcpy(dkw->dkw_ptype, DKW_PTYPE_FFS);
 
 		break;
 	}
 
+	case DIOCGPARTINFO:
+	{
+		struct partinfo *pi = (void *) arg;
+		struct disk_geom *dg = >zv_dk.dk_geom;
+
+		memset(pi, 0, sizeof(*pi));
+		pi->pi_offset = 0;
+		pi->pi_secsize = dg->dg_secsize;
+		pi->pi_size = dg->dg_secperunit;
+		pi->pi_fstype = FS_OTHER;
+		pi->pi_bsize = MAX(BLKDEV_IOSIZE, pi->pi_secsize);
+
+		break;
+	}
+
 	default:
 		dprintf("unknown disk_ioctl called\n");
 		error = ENOTTY;



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

2020-02-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Feb 28 03:52:26 UTC 2020

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

Log Message:
Teach zfs bdevsw to do b_psize.

This is needed, among other things, to swap on zvols.

Attempting to swap on zvols currently deadlocks but that's a separate
issue that needs to be fixed too!


To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.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_ioctl.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c:1.21 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c:1.22
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c:1.21	Mon Oct 14 13:18:00 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c	Fri Feb 28 03:52:26 2020
@@ -7062,6 +7062,29 @@ nb_zvol_strategy(struct buf *bp)
 	(void) zvol_strategy(bp);
 }
 
+static int
+nb_zvol_psize(dev_t dev)
+{
+	minor_t minor = getminor(dev);
+	off_t nbytes;
+	unsigned bytespersector;
+
+	if (minor == 0)		/* /dev/zfs */
+		return -1;
+
+	if (zvol_ioctl(dev, DIOCGMEDIASIZE, (intptr_t), 0,
+		NOCRED, NULL))
+		return -1;
+	if (zvol_ioctl(dev, DIOCGSECTORSIZE, (intptr_t), 0,
+		NOCRED, NULL))
+		return -1;
+	if (bytespersector == 0) /* paranoia */
+		return -1;
+	if (nbytes/bytespersector > INT_MAX) /* paranoia */
+		return -1;
+	return nbytes/bytespersector;
+}
+
 static const struct fileops zfs_fileops = {
 	.fo_name = "zfs",
 	.fo_read = fbadop_read,
@@ -7081,7 +7104,7 @@ const struct bdevsw zfs_bdevsw = {
 	.d_strategy = nb_zvol_strategy,
 	.d_ioctl = nb_zfsdev_ioctl,
 	.d_dump = nodump,
-	.d_psize = nosize,
+	.d_psize = nb_zvol_psize,
 	.d_flag = D_DISK | D_MPSAFE
 };
 



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

2020-02-22 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Feb 23 06:15:27 UTC 2020

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

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


To generate a diff of this commit:
cvs rdiff -u -r1.60 -r1.61 \
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.60 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.61
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.60	Sun Feb 23 05:50:25 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Sun Feb 23 06:15:27 2020
@@ -5509,6 +5509,19 @@ zfs_netbsd_fsync(void *v)
 }
 
 static int
+zfs_spec_fsync(void *v)
+{
+	struct vop_fsync_args *ap = v;
+	int error;
+
+	error = spec_fsync(v);
+	if (error)
+		return error;
+
+	return (zfs_fsync(ap->a_vp, ap->a_flags, ap->a_cred, NULL));
+}
+
+static int
 zfs_netbsd_getattr(void *v)
 {
 	struct vop_getattr_args *ap = v;
@@ -6355,7 +6368,7 @@ const struct vnodeopv_entry_desc zfs_spe
 	{ _poll_desc,		spec_poll },
 	{ _kqfilter_desc,		spec_kqfilter },
 	{ _revoke_desc,		spec_revoke },
-	{ _fsync_desc,		zfs_netbsd_fsync },
+	{ _fsync_desc,		zfs_spec_fsync },
 	{ _remove_desc,		spec_remove },
 	{ _link_desc,		spec_link },
 	{ _lock_desc,		zfs_netbsd_lock },



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

2020-02-22 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Feb 23 05:50:25 UTC 2020

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

Log Message:
Teach zfs spec nodes to VOP_BWRITE too.

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

XXX pullup


To generate a diff of this commit:
cvs rdiff -u -r1.59 -r1.60 \
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.59 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.60
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.59	Wed Feb 19 05:52:52 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Sun Feb 23 05:50:25 2020
@@ -6376,6 +6376,7 @@ const struct vnodeopv_entry_desc zfs_spe
 	{ _islocked_desc,		zfs_netbsd_islocked },
 	{ _advlock_desc,		spec_advlock },
 	{ _strategy_desc,		spec_strategy },
+	{ _bwrite_desc,		spec_bwrite },
 	{ _print_desc,		zfs_netbsd_print },
 	{ _fcntl_desc,		zfs_netbsd_fcntl },
 	{ NULL, NULL }



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

2020-02-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Feb 19 17:05:06 UTC 2020

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

Log Message:
Mark previous #ifdef __NetBSD__, per request from hannken.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/spa_history.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/spa_history.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/spa_history.c:1.5 src/external/cddl/osnet/dist/uts/common/fs/zfs/spa_history.c:1.6
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/spa_history.c:1.5	Wed Feb 19 16:11:19 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/spa_history.c	Wed Feb 19 17:05:06 2020
@@ -540,9 +540,17 @@ spa_history_log_internal_dd(dsl_dir_t *d
 void
 spa_history_log_version(spa_t *spa, const char *operation)
 {
+#ifdef __NetBSD__
 	spa_history_log_internal(spa, operation, NULL,
 	"pool version %llu; software version %llu/%d; %s %s %s %s %s",
 	(u_longlong_t)spa_version(spa), SPA_VERSION, ZPL_VERSION,
 	utsname.sysname, utsname.nodename, utsname.release, utsname.version,
 	utsname.machine);
+#else
+	spa_history_log_internal(spa, operation, NULL,
+	"pool version %llu; software version %llu/%d; uts %s %s %s %s",
+	(u_longlong_t)spa_version(spa), SPA_VERSION, ZPL_VERSION,
+	utsname.nodename, utsname.release, utsname.version,
+	utsname.machine);
+#endif
 }



CVS commit: src/external/cddl/osnet

2020-02-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Feb 19 16:11:19 UTC 2020

Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: spa_history.c
src/external/cddl/osnet/sys/kern: misc.c

Log Message:
Report the OS name and release appropriately for NetBSD.

We are not OpenSolaris or uts!


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/spa_history.c
cvs rdiff -u -r1.7 -r1.8 src/external/cddl/osnet/sys/kern/misc.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/spa_history.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/spa_history.c:1.4 src/external/cddl/osnet/dist/uts/common/fs/zfs/spa_history.c:1.5
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/spa_history.c:1.4	Mon May 28 21:05:07 2018
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/spa_history.c	Wed Feb 19 16:11:19 2020
@@ -541,8 +541,8 @@ void
 spa_history_log_version(spa_t *spa, const char *operation)
 {
 	spa_history_log_internal(spa, operation, NULL,
-	"pool version %llu; software version %llu/%d; uts %s %s %s %s",
+	"pool version %llu; software version %llu/%d; %s %s %s %s %s",
 	(u_longlong_t)spa_version(spa), SPA_VERSION, ZPL_VERSION,
-	utsname.nodename, utsname.release, utsname.version,
+	utsname.sysname, utsname.nodename, utsname.release, utsname.version,
 	utsname.machine);
 }

Index: src/external/cddl/osnet/sys/kern/misc.c
diff -u src/external/cddl/osnet/sys/kern/misc.c:1.7 src/external/cddl/osnet/sys/kern/misc.c:1.8
--- src/external/cddl/osnet/sys/kern/misc.c:1.7	Tue Dec 31 14:51:29 2019
+++ src/external/cddl/osnet/sys/kern/misc.c	Wed Feb 19 16:11:19 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: misc.c,v 1.7 2019/12/31 14:51:29 pgoyette Exp $	*/
+/*	$NetBSD: misc.c,v 1.8 2020/02/19 16:11:19 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -82,7 +82,7 @@ opensolaris_utsname_init(void *arg)
 	strlcpy(utsname.sysname, ostype, sizeof(utsname.sysname));
 	strlcpy(utsname.nodename, hostname, sizeof(utsname.nodename));
 	strlcpy(utsname.release, osrelease, sizeof(utsname.release));
-	strlcpy(utsname.version, "OpenSolaris", sizeof(utsname.version));
+	strlcpy(utsname.version, version, sizeof(utsname.version));
 	strlcpy(utsname.machine, machine, sizeof(utsname.machine));
 }
 



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

2020-02-18 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Feb 19 05:52:52 UTC 2020

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

Log Message:
Define VOP_STRATEGY on zfs device nodes too.

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

XXX pullup


To generate a diff of this commit:
cvs rdiff -u -r1.58 -r1.59 \
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.58 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.59
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.58	Sat Feb 15 19:03:15 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Wed Feb 19 05:52:52 2020
@@ -6375,6 +6375,7 @@ const struct vnodeopv_entry_desc zfs_spe
 	{ _mmap_desc,		spec_mmap },
 	{ _islocked_desc,		zfs_netbsd_islocked },
 	{ _advlock_desc,		spec_advlock },
+	{ _strategy_desc,		spec_strategy },
 	{ _print_desc,		zfs_netbsd_print },
 	{ _fcntl_desc,		zfs_netbsd_fcntl },
 	{ NULL, NULL }



CVS commit: src/external/cddl/osnet/dist/cmd/zpool

2020-02-16 Thread Roy Marples
Module Name:src
Committed By:   roy
Date:   Sun Feb 16 14:06:10 UTC 2020

Modified Files:
src/external/cddl/osnet/dist/cmd/zpool: zpool_vdev.c

Log Message:
zpool: The NetBSD specific ioctl needs to include sys/ioctl.h


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dist/cmd/zpool/zpool_vdev.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/cmd/zpool/zpool_vdev.c
diff -u src/external/cddl/osnet/dist/cmd/zpool/zpool_vdev.c:1.4 src/external/cddl/osnet/dist/cmd/zpool/zpool_vdev.c:1.5
--- src/external/cddl/osnet/dist/cmd/zpool/zpool_vdev.c:1.4	Mon May 28 21:05:04 2018
+++ src/external/cddl/osnet/dist/cmd/zpool/zpool_vdev.c	Sun Feb 16 14:06:10 2020
@@ -80,6 +80,7 @@
 #endif
 #ifdef __NetBSD__
 #include 
+#include 
 #endif
 
 #include "zpool_util.h"



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

2020-02-15 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sat Feb 15 19:03:15 UTC 2020

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

Log Message:
Teach zfs to revoke vnodes the usual way.

XXX pullup


To generate a diff of this commit:
cvs rdiff -u -r1.57 -r1.58 \
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.57 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.58
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.57	Thu Feb 13 16:53:32 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Sat Feb 15 19:03:15 2020
@@ -6309,6 +6309,7 @@ const struct vnodeopv_entry_desc zfs_vno
 	{ _ioctl_desc,		zfs_netbsd_ioctl },
 	{ _poll_desc,		genfs_poll },
 	{ _kqfilter_desc,		genfs_kqfilter },
+	{ _revoke_desc,		genfs_revoke },
 	{ _fsync_desc,		zfs_netbsd_fsync },
 	{ _remove_desc,		zfs_netbsd_remove },
 	{ _link_desc,		zfs_netbsd_link },
@@ -6353,6 +6354,7 @@ const struct vnodeopv_entry_desc zfs_spe
 	{ _ioctl_desc,		spec_ioctl },
 	{ _poll_desc,		spec_poll },
 	{ _kqfilter_desc,		spec_kqfilter },
+	{ _revoke_desc,		spec_revoke },
 	{ _fsync_desc,		zfs_netbsd_fsync },
 	{ _remove_desc,		spec_remove },
 	{ _link_desc,		spec_link },
@@ -6397,6 +6399,7 @@ const struct vnodeopv_entry_desc zfs_fif
 	{ _ioctl_desc,		vn_fifo_bypass },
 	{ _poll_desc,		vn_fifo_bypass },
 	{ _kqfilter_desc,		vn_fifo_bypass },
+	{ _revoke_desc,		vn_fifo_bypass },
 	{ _fsync_desc,		zfs_netbsd_fsync },
 	{ _remove_desc,		vn_fifo_bypass },
 	{ _link_desc,		vn_fifo_bypass },



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

2020-02-13 Thread Juergen Hannken-Illjes
Module Name:src
Committed By:   hannken
Date:   Thu Feb 13 16:53:32 UTC 2020

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

Log Message:
zfs_netbsd_setattr: ignore size changes on device nodes.


To generate a diff of this commit:
cvs rdiff -u -r1.56 -r1.57 \
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.56 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.57
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.56	Sat Jan 18 15:21:32 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Thu Feb 13 16:53:32 2020
@@ -5575,6 +5575,9 @@ zfs_netbsd_setattr(void *v)
 
 	zflags = VTOZ(vp)->z_pflags;
 
+	/* Ignore size changes on device nodes. */
+	if (vp->v_type == VBLK || vp->v_type == VCHR)
+		xvap.xva_vattr.va_mask &= ~AT_SIZE;
 	if (vap->va_flags != VNOVAL) {
 		int error;
 



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

2020-02-11 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Feb 12 06:05:23 UTC 2020

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

Log Message:
Change the address ranges that aarch64 considers toxic for dtrace.

`Toxic' means dtrace forbids D scripts from even attempting to read
or write at them.

Previously we considered [0, VM_MIN_KERNEL_ADDRESS) toxic, but
VM_MIN_KERNEL_ADDRESS is only the minimum address of the kernel map;
the direct-mapped region lies below it, and with PMAP_MAP_POOLPAGE we
allocate virtual pages for pool backing directly from physical pages
through the direct-mapped region.  Also, this did not consider I/O
mappings to be toxic, which they probably should be.

Instead, treat:

[0, AARCH64_KSEG_START)
and
[VM_KERNEL_IO_ADDRESS, 0xfff...ff)

as toxic.  (The upper bound for 0xfff...ff ought to be inclusive, not
exclusive, but I think we'll need another mechanism for expressing
that to dtrace!)


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/external/cddl/osnet/dev/dtrace/aarch64/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/aarch64/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.2 src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.3
--- src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.2	Wed Feb 12 01:09:38 2020
+++ src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c	Wed Feb 12 06:05:23 2020
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.2 2020/02/12 01:09:38 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.3 2020/02/12 06:05:23 riastradh Exp $");
 
 #include 
 #include 
@@ -128,7 +128,8 @@ void
 dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit))
 {
 
-	(*func)(0, (uintptr_t)VM_MIN_KERNEL_ADDRESS);
+	(*func)(0, (uintptr_t)AARCH64_KSEG_START);
+	(*func)((uintptr_t)VM_KERNEL_IO_ADDRESS, ~(uintptr_t)0);
 }
 
 static void



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

2020-02-11 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Feb 12 06:05:31 UTC 2020

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

Log Message:
Switch from db_write_bytes to using direct-mapping.

This way there's no dependency on ddb.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.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/aarch64/fbt_isa.c
diff -u src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.5 src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.6
--- src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.5	Wed Feb 12 01:10:25 2020
+++ src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c	Wed Feb 12 06:05:31 2020
@@ -37,7 +37,9 @@
 #include 
 #include 
 
-#include 
+#include 
+
+#include 
 
 #include 
 
@@ -92,9 +94,14 @@ fbt_invop(uintptr_t addr, struct trapfra
 void
 fbt_patch_tracepoint(fbt_probe_t *fbt, fbt_patchval_t val)
 {
+	paddr_t pa;
+	vaddr_t va;
 
-	db_write_bytes((db_addr_t)fbt->fbtp_patchpoint, sizeof(val),
-	(const void *));
+	if (!pmap_extract(pmap_kernel(), (vaddr_t)fbt->fbtp_patchpoint, ))
+		return;
+	if (!mm_md_direct_mapped_phys(pa, ))
+		return;
+	*(fbt_patchval_t *)va = val;
 	cpu_icache_sync_range((vm_offset_t)fbt->fbtp_patchpoint, sizeof(val));
 }
 



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

2020-02-11 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Feb 12 01:10:25 UTC 2020

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

Log Message:
Count the number of artificial frames in aarch64 fbt probe correctly.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.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/aarch64/fbt_isa.c
diff -u src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.4 src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.5
--- src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.4	Wed Feb 12 01:09:48 2020
+++ src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c	Wed Feb 12 01:10:25 2020
@@ -52,6 +52,17 @@
 #define	FBT_ENTRY	"entry"
 #define	FBT_RETURN	"return"
 
+/*
+ * How many artificial frames appear between dtrace_probe and the
+ * interrupted function call?
+ *
+ *	fbt_invop
+ *	dtrace_invop
+ *	dtrace_invop_start
+ *	el1_trap_exit
+ */
+#define	FBT_AFRAMES	4
+
 int
 fbt_invop(uintptr_t addr, struct trapframe *frame, uintptr_t r0)
 {
@@ -152,7 +163,7 @@ fbt_provide_module_cb(const char *name, 
 #endif
 	fbt->fbtp_name = name;
 	fbt->fbtp_id = dtrace_probe_create(fbt_id, modname,
-	name, FBT_ENTRY, 3, fbt);
+	name, FBT_ENTRY, FBT_AFRAMES, fbt);
 	fbt->fbtp_patchpoint = instr;
 #ifdef __FreeBSD__
 	fbt->fbtp_ctl = lf;
@@ -206,7 +217,7 @@ again:
 	fbt->fbtp_name = name;
 	if (retfbt == NULL) {
 		fbt->fbtp_id = dtrace_probe_create(fbt_id, modname,
-		name, FBT_RETURN, 3, fbt);
+		name, FBT_RETURN, FBT_AFRAMES, fbt);
 	} else {
 		retfbt->fbtp_next = fbt;
 		fbt->fbtp_id = retfbt->fbtp_id;



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

2020-02-11 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Feb 12 01:09:48 UTC 2020

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

Log Message:
Tidy up a bit: don't set things we won't use; assert nonzeroness.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.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/aarch64/fbt_isa.c
diff -u src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.3 src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.4
--- src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.3	Wed Feb 12 01:09:39 2020
+++ src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c	Wed Feb 12 01:09:48 2020
@@ -70,6 +70,7 @@ fbt_invop(uintptr_t addr, struct trapfra
 			frame->tf_regs.r_reg[3], frame->tf_regs.r_reg[4]);
 
 			cpu->cpu_dtrace_caller = 0;
+			KASSERT(fbt->fbtp_savedval != 0);
 			return (fbt->fbtp_savedval);
 		}
 	}
@@ -142,6 +143,7 @@ fbt_provide_module_cb(const char *name, 
 
 	if (instr >= limit)
 		return (0);
+	KASSERT(*instr != 0);
 
 #ifdef __FreeBSD__
 	fbt = malloc(sizeof (fbt_probe_t), M_FBT, M_WAITOK | M_ZERO);
@@ -161,7 +163,6 @@ fbt_provide_module_cb(const char *name, 
 #endif
 	fbt->fbtp_savedval = *instr;
 	fbt->fbtp_patchval = FBT_PATCHVAL;
-	fbt->fbtp_rval = DTRACE_INVOP_PUSHM;
 	fbt->fbtp_symindx = symindx;
 
 	fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)];
@@ -192,6 +193,7 @@ again:
 
 	if (instr >= limit)
 		return (0);
+	KASSERT(*instr != 0);
 
 	/*
 	 * We have a winner!
@@ -219,13 +221,10 @@ again:
 #ifdef __NetBSD__
 	fbt->fbtp_ctl = mod;
 #endif
-	fbt->fbtp_symindx = symindx;
-	if ((*instr & B_MASK) == B_INSTR)
-		fbt->fbtp_rval = DTRACE_INVOP_B;
-	else
-		fbt->fbtp_rval = DTRACE_INVOP_RET;
 	fbt->fbtp_savedval = *instr;
 	fbt->fbtp_patchval = FBT_PATCHVAL;
+	fbt->fbtp_symindx = symindx;
+
 	fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)];
 	fbt_probetab[FBT_ADDR2NDX(instr)] = fbt;
 



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

2020-02-11 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Feb 12 01:09:39 UTC 2020

Modified Files:
src/external/cddl/osnet/dev/dtrace/aarch64: dtrace_subr.c
src/external/cddl/osnet/dev/fbt/aarch64: fbt_isa.c

Log Message:
Tidy up a bit.  No functional change intended.

aarch64 fbt_invop doesn't actually use the argument, but it would
make more sense for it to be the return value and/or first argument
register.  Certainly it's not `eax'!


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.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/aarch64/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.1 src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.2
--- src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c:1.1	Tue Dec  3 22:10:56 2019
+++ src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_subr.c	Wed Feb 12 01:09:38 2020
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.1 2019/12/03 22:10:56 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dtrace_subr.c,v 1.2 2020/02/12 01:09:38 riastradh Exp $");
 
 #include 
 #include 
@@ -69,13 +69,13 @@ typedef struct dtrace_invop_hdlr {
 dtrace_invop_hdlr_t *dtrace_invop_hdlr;
 
 int
-dtrace_invop(uintptr_t addr, struct trapframe *frame, uintptr_t eax)
+dtrace_invop(uintptr_t addr, struct trapframe *frame, uintptr_t r0)
 {
 	dtrace_invop_hdlr_t *hdlr;
 	int rval;
 
 	for (hdlr = dtrace_invop_hdlr; hdlr != NULL; hdlr = hdlr->dtih_next)
-		if ((rval = hdlr->dtih_func(addr, frame, eax)) != 0)
+		if ((rval = hdlr->dtih_func(addr, frame, r0)) != 0)
 			return (rval);
 
 	return (0);
@@ -263,7 +263,7 @@ dtrace_invop_start(struct trapframe *fra
 	int tmp;
 	int i;
 
-	invop = dtrace_invop(frame->tf_pc, frame, frame->tf_pc);
+	invop = dtrace_invop(frame->tf_pc, frame, frame->tf_regs.r_reg[0]);
 
 	tmp = (invop & LDP_STP_MASK);
 	if (tmp == STP_64 || tmp == LDP_64) {

Index: src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c
diff -u src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.2 src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.3
--- src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.2	Wed Feb 12 01:09:27 2020
+++ src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c	Wed Feb 12 01:09:39 2020
@@ -53,7 +53,7 @@
 #define	FBT_RETURN	"return"
 
 int
-fbt_invop(uintptr_t addr, struct trapframe *frame, uintptr_t rval)
+fbt_invop(uintptr_t addr, struct trapframe *frame, uintptr_t r0)
 {
 	solaris_cpu_t *cpu;
 	fbt_probe_t *fbt;



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

2020-02-11 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Feb 12 01:10:08 UTC 2020

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

Log Message:
Use /dev/ksyms, not /netbsd, for the running kernel's symbols.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
src/external/cddl/osnet/dist/lib/libdtrace/common/dt_impl.h
cvs rdiff -u -r1.17 -r1.18 \
src/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.c
cvs rdiff -u -r1.16 -r1.17 \
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_impl.h
diff -u src/external/cddl/osnet/dist/lib/libdtrace/common/dt_impl.h:1.8 src/external/cddl/osnet/dist/lib/libdtrace/common/dt_impl.h:1.9
--- src/external/cddl/osnet/dist/lib/libdtrace/common/dt_impl.h:1.8	Mon May 28 21:05:05 2018
+++ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_impl.h	Wed Feb 12 01:10:08 2020
@@ -750,8 +750,6 @@ extern int yylex(void);
 #endif
 
 #ifdef __NetBSD__
-extern const char *dt_bootfile(char *, size_t);
-
 #define longlong_t long long
 #define u_longlong_t unsigned long long
 #define __DECONST(a, b) __UNCONST(b)

Index: src/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.c
diff -u src/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.c:1.17 src/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.c:1.18
--- src/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.c:1.17	Sat Jun  2 01:19:46 2018
+++ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_module.c	Wed Feb 12 01:10:08 2020
@@ -43,6 +43,7 @@
 #endif
 #ifdef __NetBSD__
 #include 
+#include 
 #endif
 
 #include 
@@ -1185,9 +1186,7 @@ dt_module_update(dtrace_hdl_t *dtp, stru
 	bool ismod;
 
 	if (strcmp("netbsd", name) == 0) {
-		/* want the kernel, but it is not absolute */
-		dt_bootfile(machine, sizeof(machine));
-		snprintf(fname, sizeof(fname), "/%s", machine);
+		strlcpy(fname, _PATH_KSYMS, sizeof fname);
 		ismod = false;
 	} else {
 

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.16 src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.17
--- src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.16	Wed Jul 24 16:57:45 2019
+++ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c	Wed Feb 12 01:10:08 2020
@@ -1025,24 +1025,15 @@ dt_get_sysinfo(int cmd, char *buf, size_
 }
 #endif
 
-#ifndef illumos
-# ifdef __FreeBSD__
-#  define DEFKERNEL	"kernel"
-#  define BOOTFILE	"kern.bootfile"
-# endif
-# ifdef __NetBSD__
-#  define DEFKERNEL	"netbsd"
-#  define BOOTFILE	"machdep.booted_kernel"
-# endif
-
-const char *
+#ifdef __FreeBSD__
+static const char *
 dt_bootfile(char *bootfile, size_t len)
 {
 	char *p;
 	size_t olen = len;
 
-	if (sysctlbyname(BOOTFILE, bootfile, , NULL, 0) != 0)
-		strlcpy(bootfile, DEFKERNEL, olen);
+	if (sysctlbyname("kern.bootfile", bootfile, , NULL, 0) != 0)
+		strlcpy(bootfile, "kernel", olen);
 
 	if ((p = strrchr(bootfile, '/')) != NULL)
 		p++;
@@ -1050,9 +1041,6 @@ dt_bootfile(char *bootfile, size_t len)
 		p = bootfile;
 	return p;
 }
-
-# undef DEFKERNEL
-# undef BOOTFILE
 #endif
 
 static dtrace_hdl_t *



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

2020-02-11 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Feb 12 01:09:27 UTC 2020

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

Log Message:
Use db_write_bytes to overwrite kernel text.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.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/aarch64/fbt_isa.c
diff -u src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.1 src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.2
--- src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c:1.1	Tue Dec  3 22:10:56 2019
+++ src/external/cddl/osnet/dev/fbt/aarch64/fbt_isa.c	Wed Feb 12 01:09:27 2020
@@ -36,6 +36,9 @@
 #include 
 #include 
 #include 
+
+#include 
+
 #include 
 
 #include 
@@ -78,8 +81,9 @@ void
 fbt_patch_tracepoint(fbt_probe_t *fbt, fbt_patchval_t val)
 {
 
-	*fbt->fbtp_patchpoint = val;
-	cpu_icache_sync_range((vm_offset_t)fbt->fbtp_patchpoint, 4);
+	db_write_bytes((db_addr_t)fbt->fbtp_patchpoint, sizeof(val),
+	(const void *));
+	cpu_icache_sync_range((vm_offset_t)fbt->fbtp_patchpoint, sizeof(val));
 }
 
 #if defined(__FreeBSD__)



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

2020-02-11 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Feb 12 01:10:16 UTC 2020

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

Log Message:
Teach dtrace about el1_trap_exit frames on aarch64.

Implement dtrace_getarg and dtrace_getreg while here.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.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/aarch64/dtrace_isa.c
diff -u src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c:1.1 src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c:1.2
--- src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c:1.1	Tue Dec  3 22:10:56 2019
+++ src/external/cddl/osnet/dev/dtrace/aarch64/dtrace_isa.c	Wed Feb 12 01:10:16 2020
@@ -89,52 +89,60 @@ void
 dtrace_getpcstack(pc_t *pcstack, int pcstack_limit, int aframes,
 uint32_t *intrpc)
 {
-	struct unwind_state state;
-	int scp_offset;
-	register_t sp, fp;
-	int depth;
-
-	depth = 0;
-
-	if (intrpc != 0) {
-		pcstack[depth++] = (pc_t) intrpc;
+	extern const char el1_trap_exit[];
+	const register_t *fp;
+	int i = 0;
+
+	if (intrpc) {
+		if (i < pcstack_limit)
+			pcstack[i++] = (pc_t)intrpc;
 	}
 
-	aframes++;
-
-	__asm __volatile("mov %0, sp" : "=" (sp));
-
-	state.fp = (uint64_t)__builtin_frame_address(0);
-	state.sp = sp;
-	state.pc = (uint64_t)dtrace_getpcstack;
-
-	while (depth < pcstack_limit) {
-		if (!INKERNEL(state.pc) || !INKERNEL(state.fp))
-			break;
-
-		fp = state.fp;
-		state.sp = fp + 0x10;
-		/* FP to previous frame (X29) */
-		state.fp = *(register_t *)(fp);
-		/* LR (X30) */
-		state.pc = *(register_t *)(fp + 8) - 4;
-
-		/*
-		 * NB: Unlike some other architectures, we don't need to
-		 * explicitly insert cpu_dtrace_caller as it appears in the
-		 * normal kernel stack trace rather than a special trap frame.
-		 */
-		if (aframes > 0) {
+	/*
+	 * fp[0] = x29 (saved frame pointer)
+	 * fp[1] = x30 (saved link register == return address)
+	 */
+	fp = __builtin_frame_address(0);
+	while (i < pcstack_limit && INKERNEL(fp[0]) && INKERNEL(fp[1])) {
+		/* Skip the specified number of artificial frames.  */
+		if (aframes > 0)
 			aframes--;
+		else
+			pcstack[i++] = fp[1];
+
+		/* Check whether this frame is handling a trap.  */
+		if (fp[1] == (register_t)el1_trap_exit) {
+			/*
+			 * Trap from kernel.  The trapframe is the
+			 * saved frame pointer of the call to the trap
+			 * handler whose return address is
+			 * el1_trap_exit.  The frame pointer of the
+			 * interrupted code is in x29 stashed in the
+			 * trapframe, alongside its pc.
+			 */
+			const struct trapframe *tf = (const void *)fp[0];
+			/* x29 = frame pointer */
+			fp = (const void *)tf->tf_regs.r_reg[29];
+			if (INKERNEL(tf->tf_pc)) {
+if (i >= pcstack_limit)
+	break;
+if (aframes > 0)
+	aframes--;
+else
+	pcstack[i++] = tf->tf_pc;
+			}
 		} else {
-			pcstack[depth++] = state.pc;
+			/*
+			 * Not a trap.  Keep going with fp[0] as the
+			 * parent frame pointer.
+			 */
+			fp = (const void *)fp[0];
 		}
-
 	}
 
-	for (; depth < pcstack_limit; depth++) {
-		pcstack[depth] = 0;
-	}
+	/* Zero the rest of the return address stack.  (Paranoia?)  */
+	while (i < pcstack_limit)
+		pcstack[i++] = 0;
 }
 
 static int
@@ -282,48 +290,78 @@ dtrace_getufpstack(uint64_t *pcstack, ui
 uint64_t
 dtrace_getarg(int arg, int aframes)
 {
+	extern const char el1_trap_exit[];
+	const register_t *fp;
+	const struct trapframe *tf = NULL;
+	int i = 0;
 
-	printf("IMPLEMENT ME: %s\n", __func__);
+	/*
+	 * The first arguments are passed in x0,...,x7.  The rest are
+	 * on the stack, too much trouble to figure out.
+	 *
+	 * XXX Shouldn't we ask ctf or dwarf or something to figure
+	 * this stuff out for us?
+	 */
+	KASSERT(arg >= 0);
+	if (arg >= 8)
+		return 0;
+
+	fp = __builtin_frame_address(0);
+	while (i < 1000 && INKERNEL(fp[0]) && INKERNEL(fp[1])) {
+		if (aframes > 0)
+			aframes--;
+		else
+			i++;
+		if (fp[1] == (register_t)el1_trap_exit) {
+			tf = (const void *)fp[0];
+			break;
+		} else {
+			fp = (const void *)fp[0];
+		}
+	}
 
-	return (0);
+	/* If we didn't find a trap frame, give up.  */
+	if (tf == NULL)
+		return 0;
+
+	/* Arg0, arg1, ..., arg7 are in registers x0, x1, ..., x7.  */
+	return tf->tf_regs.r_reg[arg];
 }
 
 int
 dtrace_getstackdepth(int aframes)
 {
-	struct unwind_state state;
-	int scp_offset;
-	register_t sp;
-	int depth;
-	int done;
-
-	depth = 1;
-	done = 0;
-
-	__asm __volatile("mov %0, sp" : "=" (sp));
-
-	state.fp = (uint64_t)__builtin_frame_address(0);
-	state.sp = sp;
-	state.pc = (uint64_t)dtrace_getstackdepth;
-
-	do {
-		done = unwind_frame();
-		if (!INKERNEL(state.pc) || !INKERNEL(state.fp))
-			break;
-		depth++;
-	} while (!done);
+	extern const char el1_trap_exit[];
+	const register_t *fp;
+	int i = 0;
+
+	fp = __builtin_frame_address(0);

CVS commit: src/external/cddl/osnet/usr.bin/ctfconvert

2020-02-08 Thread Santhosh Raju
Module Name:src
Committed By:   fox
Date:   Sun Feb  9 07:55:13 UTC 2020

Modified Files:
src/external/cddl/osnet/usr.bin/ctfconvert: Makefile

Log Message:
external/cddl/osnet: Suppress -Werror=stringop-truncation error.

Add GCC_NO_STRINGOP_TRUNCATION dwarf.c to prevent build failure.

Error was reported when build.sh was run with MKLIBCSANITIZER=yes flag.

Reviewed by: kamil@


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/external/cddl/osnet/usr.bin/ctfconvert/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/usr.bin/ctfconvert/Makefile
diff -u src/external/cddl/osnet/usr.bin/ctfconvert/Makefile:1.8 src/external/cddl/osnet/usr.bin/ctfconvert/Makefile:1.9
--- src/external/cddl/osnet/usr.bin/ctfconvert/Makefile:1.8	Mon May 28 21:05:11 2018
+++ src/external/cddl/osnet/usr.bin/ctfconvert/Makefile	Sun Feb  9 07:55:13 2020
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.8 2018/05/28 21:05:11 chs Exp $
+#	$NetBSD: Makefile,v 1.9 2020/02/09 07:55:13 fox Exp $
 
 # $FreeBSD: head/cddl/usr.bin/ctfconvert/Makefile 314654 2017-03-04 11:30:04Z ngie $
 
@@ -34,6 +34,7 @@ SRCS=		alist.c \
 		traverse.c \
 		util.c
 
+COPTS.dwarf.c +=	${GCC_NO_STRINGOP_TRUNCATION}
 COPTS.st_parse.c +=	-Wno-format-nonliteral
 COPTS.util.c +=		-Wno-format-nonliteral
 



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

2020-01-18 Thread Andrew Doran
Module Name:src
Committed By:   ad
Date:   Sat Jan 18 15:21:32 UTC 2020

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

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


To generate a diff of this commit:
cvs rdiff -u -r1.55 -r1.56 \
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.55 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.56
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.55	Wed Jan 15 17:55:43 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Sat Jan 18 15:21:32 2020
@@ -779,7 +779,7 @@ update_pages(vnode_t *vp, int64_t start,
 	struct uvm_object *uobj = >v_uobj;
 	kmutex_t *mtx = uobj->vmobjlock;
 	caddr_t va;
-	int off;
+	int off, status;
 
 	ASSERT(vp->v_mount != NULL);
 
@@ -796,6 +796,26 @@ update_pages(vnode_t *vp, int64_t start,
 		found = uvn_findpages(uobj, start, , , NULL,
 		UFP_NOALLOC);
 		if (found) {
+			/*
+			 * We're about to zap the page's contents and don't
+			 * care about any existing modifications.  We must
+			 * keep track of any new modifications past this
+			 * point.  Clear the modified bit in the pmap, and
+			 * if the page is marked dirty revert to tracking
+			 * the modified bit.
+			 */
+			switch (uvm_pagegetdirty(pp)) {
+			case UVM_PAGE_STATUS_DIRTY:
+/* Does pmap_clear_modify(). */
+uvm_pagemarkdirty(pp, UVM_PAGE_STATUS_UNKNOWN);
+break;
+			case UVM_PAGE_STATUS_UNKNOWN:
+pmap_clear_modify(pp);
+break;
+			case UVM_PAGE_STATUS_CLEAN:
+/* Nothing to do. */
+break;
+			}
 			mutex_exit(mtx);
 
 			va = zfs_map_page(pp, S_WRITE);
@@ -5990,10 +6010,13 @@ zfs_netbsd_getpages(void *v)
 
 		mutex_enter(mtx);
 		pg->flags &= ~(PG_FAKE);
-		pmap_clear_modify(pg);
 	}
 
 	if (memwrite) {
+		if (uvm_pagegetdirty(pg) == UVM_PAGE_STATUS_CLEAN) {
+			/* For write faults, start dirtiness tracking. */
+			uvm_pagemarkdirty(pg, UVM_PAGE_STATUS_UNKNOWN);
+		}
 		if ((vp->v_iflag & VI_ONWORKLST) == 0) {
 			vn_syncer_add_to_worklist(vp, filedelay);
 		}



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

2019-12-31 Thread Paul Goyette
Module Name:src
Committed By:   pgoyette
Date:   Tue Dec 31 14:51:29 UTC 2019

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

Log Message:
Another rename from uvm_free() --> uvm_availmem()


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/external/cddl/osnet/sys/kern/misc.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/misc.c
diff -u src/external/cddl/osnet/sys/kern/misc.c:1.6 src/external/cddl/osnet/sys/kern/misc.c:1.7
--- src/external/cddl/osnet/sys/kern/misc.c:1.6	Sat Dec 21 13:00:20 2019
+++ src/external/cddl/osnet/sys/kern/misc.c	Tue Dec 31 14:51:29 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: misc.c,v 1.6 2019/12/21 13:00:20 ad Exp $	*/
+/*	$NetBSD: misc.c,v 1.7 2019/12/31 14:51:29 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -130,7 +130,7 @@ kmem_reap(void)
 	int bufcnt;
 	struct pool *pp;
 	
-	bufcnt = uvmexp.freetarg - uvm_free();
+	bufcnt = uvmexp.freetarg - uvm_availmem();
 	if (bufcnt < 0)
 		bufcnt = 0;
 



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

2019-12-08 Thread Sevan Janiyan
Module Name:src
Committed By:   sevan
Date:   Mon Dec  9 00:15:11 UTC 2019

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

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


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

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

Modified files:

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



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

2019-12-04 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Thu Dec  5 03:21:42 UTC 2019

Modified Files:
src/external/cddl/osnet/sys/sys: opentypes.h

Log Message:
Avoid redefining uint_t  if compat_defs.h already defines them.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/sys/sys/opentypes.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/sys/sys/opentypes.h
diff -u src/external/cddl/osnet/sys/sys/opentypes.h:1.4 src/external/cddl/osnet/sys/sys/opentypes.h:1.5
--- src/external/cddl/osnet/sys/sys/opentypes.h:1.4	Thu Sep  6 00:44:43 2018
+++ src/external/cddl/osnet/sys/sys/opentypes.h	Thu Dec  5 03:21:42 2019
@@ -21,10 +21,12 @@ typedef	struct timespec	timestruc_t;
 #define __defined_ts_t
 typedef	struct timespec	timespec_t;
 #endif
+#ifndef HAVE_NBTOOL_CONFIG_H
 typedef unsigned int	uint_t;
 typedef unsigned char	uchar_t;
 typedef unsigned short	ushort_t;
 typedef unsigned long	ulong_t;
+#endif
 typedef off_t		off64_t;
 typedef id_t		taskid_t;
 typedef id_t		projid_t;



  1   2   3   4   5   6   7   >