CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Sat Aug 24 12:59:34 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: dnode.c Log Message: Add missing dmu_zfetch_fini() when dnode_create() lost the race. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Sat Aug 24 12:59:34 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: dnode.c Log Message: Add missing dmu_zfetch_fini() when dnode_create() lost the race. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c:1.7 src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c:1.8 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c:1.7 Sun May 26 10:21:00 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c Sat Aug 24 12:59:34 2019 @@ -447,6 +447,9 @@ dnode_create(objset_t *os, dnode_phys_t if (dnh->dnh_dnode != NULL) { /* Lost the allocation race. */ mutex_exit(>os_lock); +#ifdef __NetBSD__ + dmu_zfetch_fini(>dn_zfetch); +#endif kmem_cache_free(dnode_cache, dn); return (dnh->dnh_dnode); }
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Sat Aug 24 12:59:06 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c Log Message: Implement kqueue support. To generate a diff of this commit: cvs rdiff -u -r1.51 -r1.52 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.51 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.52 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.51 Sat Aug 24 12:58:24 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Sat Aug 24 12:59:05 2019 @@ -,6 +,16 @@ zfs_rename(vnode_t *sdvp, vnode_t **svpp if (*tvpp != NULL) cache_purge(*tvpp); cache_purge_negative(tdvp); +#ifdef __NetBSD__ + if (*svpp == *tvpp) { +VN_KNOTE(sdvp, NOTE_WRITE); +VN_KNOTE(*svpp, (szp->z_links == 0 ? +NOTE_DELETE : NOTE_LINK)); + } else { +genfs_rename_knote(sdvp, *svpp, tdvp, *tvpp, +((tzp != NULL) && (tzp->z_links == 0))); + } +#endif } } @@ -5094,6 +5104,10 @@ zfs_netbsd_write(void *v) { struct vop_write_args *ap = v; vnode_t *vp = ap->a_vp; + znode_t *zp = VTOZ(vp); + struct uio *uio = ap->a_uio; + off_t osize = zp->z_size; + int error, resid; switch (vp->v_type) { case VBLK: @@ -5105,7 +5119,13 @@ zfs_netbsd_write(void *v) return (VOCALL(fifo_vnodeop_p, VOFFSET(vop_write), ap)); } - return (zfs_write(vp, ap->a_uio, ioflags(ap->a_ioflag), ap->a_cred, NULL)); + resid = uio->uio_resid; + error = zfs_write(vp, uio, ioflags(ap->a_ioflag), ap->a_cred, NULL); + if (resid > uio->uio_resid) + VN_KNOTE(vp, NOTE_WRITE | + (zp->z_size > osize ? NOTE_EXTEND : 0)); + + return error; } static int @@ -5296,6 +5316,8 @@ zfs_netbsd_create(void *v) KASSERT((error == 0) == (*vpp != NULL)); KASSERT(VOP_ISLOCKED(dvp) == LK_EXCLUSIVE); + if (error == 0) + VN_KNOTE(dvp, NOTE_WRITE); VOP_UNLOCK(*vpp, 0); return (error); @@ -5334,6 +5356,8 @@ zfs_netbsd_mknod(void *v) KASSERT((error == 0) == (*vpp != NULL)); KASSERT(VOP_ISLOCKED(dvp) == LK_EXCLUSIVE); + if (error == 0) + VN_KNOTE(dvp, NOTE_WRITE); VOP_UNLOCK(*vpp, 0); return (error); @@ -5363,6 +5387,10 @@ zfs_netbsd_remove(void *v) error = zfs_remove(dvp, vp, nm, cnp->cn_cred); PNBUF_PUT(nm); + if (error == 0) { + VN_KNOTE(vp, NOTE_DELETE); + VN_KNOTE(dvp, NOTE_WRITE); + } vput(vp); KASSERT(VOP_ISLOCKED(dvp) == LK_EXCLUSIVE); return (error); @@ -5398,6 +5426,8 @@ zfs_netbsd_mkdir(void *v) KASSERT((error == 0) == (*vpp != NULL)); KASSERT(VOP_ISLOCKED(dvp) == LK_EXCLUSIVE); + if (error == 0) + VN_KNOTE(dvp, NOTE_WRITE | NOTE_LINK); VOP_UNLOCK(*vpp, 0); return (error); @@ -5427,6 +5457,10 @@ zfs_netbsd_rmdir(void *v) error = zfs_rmdir(dvp, vp, nm, cnp->cn_cred); PNBUF_PUT(nm); + if (error == 0) { + VN_KNOTE(dvp, NOTE_WRITE | NOTE_LINK); + VN_KNOTE(vp, NOTE_DELETE); + } vput(vp); KASSERT(VOP_ISLOCKED(dvp) == LK_EXCLUSIVE); return error; @@ -5571,7 +5605,11 @@ zfs_netbsd_setattr(void *v) return error; } - return (zfs_setattr(vp, (vattr_t *), flags, cred, NULL)); + error = zfs_setattr(vp, (vattr_t *), flags, cred, NULL); + if (error == 0) + VN_KNOTE(vp, NOTE_ATTRIB); + + return error; } static int @@ -5675,7 +5713,8 @@ zfs_netbsd_symlink(void *v) error = zfs_symlink(dvp, vpp, nm, vap, target, cnp->cn_cred, 0); PNBUF_PUT(nm); - + if (error == 0) + VN_KNOTE(ap->a_dvp, NOTE_WRITE); KASSERT((error == 0) == (*vpp != NULL)); KASSERT(VOP_ISLOCKED(dvp) == LK_EXCLUSIVE); VOP_UNLOCK(*vpp, 0); @@ -5716,6 +5755,10 @@ zfs_netbsd_link(void *v) NULL, 0); PNBUF_PUT(nm); + if (error == 0) { + VN_KNOTE(vp, NOTE_LINK); + VN_KNOTE(dvp, NOTE_WRITE); + } VOP_UNLOCK(vp, 0); return error; } @@ -6235,6 +6278,7 @@ const struct vnodeopv_entry_desc zfs_vno { _write_desc, zfs_netbsd_write }, { _ioctl_desc, zfs_netbsd_ioctl }, { _poll_desc, genfs_poll }, + { _kqfilter_desc, genfs_kqfilter }, { _fsync_desc, zfs_netbsd_fsync }, { _remove_desc, zfs_netbsd_remove }, { _link_desc, zfs_netbsd_link }, @@ -6278,6 +6322,7 @@ const struct vnodeopv_entry_desc zfs_spe { _write_desc, /**/zfs_netbsd_write }, { _ioctl_desc, spec_ioctl }, { _poll_desc, spec_poll }, + { _kqfilter_desc, spec_kqfilter }, { _fsync_desc, zfs_netbsd_fsync }, { _remove_desc, spec_remove }, { _link_desc, spec_link }, @@ -6321,6 +6366,7 @@ const struct vnodeopv_entry_desc zfs_fif { _write_desc, /**/zfs_netbsd_write }, { _ioctl_desc, vn_fifo_bypass }, { _poll_desc, vn_fifo_bypass }, + { _kqfilter_desc, vn_fifo_bypass }, { _fsync_desc, zfs_netbsd_fsync }, { _remove_desc, vn_fifo_bypass }, { _link_desc, vn_fifo_bypass },
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Sat Aug 24 12:59:06 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c Log Message: Implement kqueue support. To generate a diff of this commit: cvs rdiff -u -r1.51 -r1.52 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Sat Aug 24 12:58:25 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c Log Message: Implement poll support. To generate a diff of this commit: cvs rdiff -u -r1.50 -r1.51 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Sat Aug 24 12:58:25 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c Log Message: Implement poll support. To generate a diff of this commit: cvs rdiff -u -r1.50 -r1.51 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.51 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50 Mon Jun 17 08:08:21 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Sat Aug 24 12:58:24 2019 @@ -6234,6 +6234,7 @@ const struct vnodeopv_entry_desc zfs_vno { _read_desc, zfs_netbsd_read }, { _write_desc, zfs_netbsd_write }, { _ioctl_desc, zfs_netbsd_ioctl }, + { _poll_desc, genfs_poll }, { _fsync_desc, zfs_netbsd_fsync }, { _remove_desc, zfs_netbsd_remove }, { _link_desc, zfs_netbsd_link }, @@ -6276,6 +6277,7 @@ const struct vnodeopv_entry_desc zfs_spe { _read_desc, /**/zfs_netbsd_read }, { _write_desc, /**/zfs_netbsd_write }, { _ioctl_desc, spec_ioctl }, + { _poll_desc, spec_poll }, { _fsync_desc, zfs_netbsd_fsync }, { _remove_desc, spec_remove }, { _link_desc, spec_link }, @@ -6318,6 +6320,7 @@ const struct vnodeopv_entry_desc zfs_fif { _read_desc, /**/zfs_netbsd_read }, { _write_desc, /**/zfs_netbsd_write }, { _ioctl_desc, vn_fifo_bypass }, + { _poll_desc, vn_fifo_bypass }, { _fsync_desc, zfs_netbsd_fsync }, { _remove_desc, vn_fifo_bypass }, { _link_desc, vn_fifo_bypass },
CVS commit: src/external/cddl/osnet/sys/kern
Module Name:src Committed By: hannken Date: Tue Aug 20 08:12:50 UTC 2019 Modified Files: src/external/cddl/osnet/sys/kern: taskq.c Log Message: task_executor: prevent use after free, the task function may free the tasq entry. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/external/cddl/osnet/sys/kern/taskq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/sys/kern
Module Name:src Committed By: hannken Date: Tue Aug 20 08:12:50 UTC 2019 Modified Files: src/external/cddl/osnet/sys/kern: taskq.c Log Message: task_executor: prevent use after free, the task function may free the tasq entry. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/external/cddl/osnet/sys/kern/taskq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/sys/kern/taskq.c diff -u src/external/cddl/osnet/sys/kern/taskq.c:1.10 src/external/cddl/osnet/sys/kern/taskq.c:1.11 --- src/external/cddl/osnet/sys/kern/taskq.c:1.10 Tue Jun 11 09:05:33 2019 +++ src/external/cddl/osnet/sys/kern/taskq.c Tue Aug 20 08:12:50 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: taskq.c,v 1.10 2019/06/11 09:05:33 hannken Exp $ */ +/* $NetBSD: taskq.c,v 1.11 2019/08/20 08:12:50 hannken Exp $ */ /*- * Copyright (c) 2019 The NetBSD Foundation, Inc. @@ -75,6 +75,7 @@ task_executor(struct threadpool_job *job struct taskq_executor *state = (struct taskq_executor *)job; taskq_t *tq = state->te_self; taskq_ent_t *tqe; + bool is_dynamic; int error; lwp_setspecific(taskq_lwp_key, tq); @@ -97,13 +98,14 @@ task_executor(struct threadpool_job *job tqe = SIMPLEQ_FIRST(>tq_list); KASSERT(tqe != NULL); SIMPLEQ_REMOVE_HEAD(>tq_list, tqent_list); + is_dynamic = tqe->tqent_dynamic; tqe->tqent_queued = 0; mutex_exit(>tq_lock); (*tqe->tqent_func)(tqe->tqent_arg); mutex_enter(>tq_lock); - if (tqe->tqent_dynamic) + if (is_dynamic) kmem_free(tqe, sizeof(*tqe)); tq->tq_active--; }
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Tue Aug 20 08:12:14 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: vdev_disk.c Log Message: Rearrange the evaluation of "dvd_maxphys" so it works for wedges too. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.12 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11 Wed Jun 12 04:20:18 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c Tue Aug 20 08:12:14 2019 @@ -220,23 +220,33 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi } /* XXXNETBSD Once tls-maxphys gets merged this block becomes: - pdk = disk_find_blk(vp->v_rdev); + if (VOP_IOCTL(vp, DIOCGWEDGEINFO, , FREAD, NOCRED) == 0) + pdk = disk_find(dkw.dkw_parent); + else + pdk = disk_find_blk(vp->v_rdev); dvd->vd_maxphys = (pdk ? disk_maxphys(pdk) : MACHINE_MAXPHYS); */ { struct buf buf = { .b_bcount = MAXPHYS }; - const char *dev_name; - dev_name = devsw_blk2name(major(vp->v_rdev)); - if (dev_name) { - char disk_name[16]; - - snprintf(disk_name, sizeof(disk_name), "%s%d", - dev_name, DISKUNIT(vp->v_rdev)); - pdk = disk_find(disk_name); - if (pdk && pdk->dk_driver && pdk->dk_driver->d_minphys) -(*pdk->dk_driver->d_minphys)(); + if (VOP_IOCTL(vp, DIOCGWEDGEINFO, , FREAD, NOCRED) == 0) { + pdk = disk_find(dkw.dkw_parent); + } else { + const char *dev_name; + + dev_name = devsw_blk2name(major(vp->v_rdev)); + if (dev_name) { +char disk_name[16]; + +snprintf(disk_name, sizeof(disk_name), "%s%d", +dev_name, DISKUNIT(vp->v_rdev)); +pdk = disk_find(disk_name); + } else { +pdk = NULL; + } } + if (pdk && pdk->dk_driver && pdk->dk_driver->d_minphys) + (*pdk->dk_driver->d_minphys)(); dvd->vd_maxphys = buf.b_bcount; }
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Tue Aug 20 08:12:14 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: vdev_disk.c Log Message: Rearrange the evaluation of "dvd_maxphys" so it works for wedges too. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/lib/libzfs/common
Module Name:src Committed By: hannken Date: Tue Aug 20 08:11:21 UTC 2019 Modified Files: src/external/cddl/osnet/dist/lib/libzfs/common: libzfs_import.c Log Message: Always open the raw block devices as "" like it comes from sysctl "hw.disknames" without attaching the raw partition letter. Now pools on wedges get imported too. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c diff -u src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c:1.4 src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c:1.5 --- src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c:1.4 Mon May 28 21:05:06 2018 +++ src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c Tue Aug 20 08:11:21 2019 @@ -1262,9 +1262,7 @@ zpool_find_import_impl(libzfs_handle_t * static const char mib_name[] = "hw.disknames"; size_t len; char *disknames, *last, *name; - char part; - part = getrawpartition(); if (sysctlbyname(mib_name, NULL, , NULL, 0) == -1) { zfs_error_aux(hdl, strerror(errno)); (void) zfs_error_fmt(hdl, EZFS_BADPATH, @@ -1277,11 +1275,10 @@ zpool_find_import_impl(libzfs_handle_t * disknames = zfs_alloc(hdl, len + 2); (void)sysctlbyname(mib_name, disknames, , NULL, 0); - for ((name = strtok_r(disknames, " ", )); name; (name = strtok_r(NULL, " ", ))) { slice = zfs_alloc(hdl, sizeof (rdsk_node_t)); -slice->rn_name = zfs_asprintf(hdl, "%s%c", name, 'a' + part); +slice->rn_name = zfs_strdup(hdl, name); slice->rn_avl = _cache; slice->rn_dfd = dfd; slice->rn_hdl = hdl;
CVS commit: src/external/cddl/osnet/dist/lib/libzfs/common
Module Name:src Committed By: hannken Date: Tue Aug 20 08:11:21 UTC 2019 Modified Files: src/external/cddl/osnet/dist/lib/libzfs/common: libzfs_import.c Log Message: Always open the raw block devices as "" like it comes from sysctl "hw.disknames" without attaching the raw partition letter. Now pools on wedges get imported too. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Tue Aug 13 08:03:25 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: dsl_dataset.c Log Message: Add missing "defined(__NetBSD__)" to make "zfs promote" work. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Tue Aug 13 08:03:25 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: dsl_dataset.c Log Message: Add missing "defined(__NetBSD__)" to make "zfs promote" work. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c:1.4 src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c:1.5 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c:1.4 Wed May 22 08:45:32 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c Tue Aug 13 08:03:25 2019 @@ -2796,7 +2796,7 @@ dsl_dataset_promote_sync(void *arg, dmu_ ASSERT(!dsl_prop_hascb(ds)); } -#if defined(__FreeBSD__) && defined(_KERNEL) +#if (defined(__FreeBSD__) || defined(__NetBSD__)) && defined(_KERNEL) mutex_exit(_namespace_lock); kmem_free(newname, MAXPATHLEN);
CVS commit: src/sys/dev/usb
Module Name:src Committed By: hannken Date: Sun Aug 11 13:16:10 UTC 2019 Modified Files: src/sys/dev/usb: if_urndis.c Log Message: urndis_attach: change "sc->sc_bulkout_no" to "un->un_ed[USBNET_ENDPT_TX]" in DPRINTF(). Kernels ALL/amd64 and ALL/i386 compile again. To generate a diff of this commit: cvs rdiff -u -r1.27 -r1.28 src/sys/dev/usb/if_urndis.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/dev/usb
Module Name:src Committed By: hannken Date: Sun Aug 11 13:16:10 UTC 2019 Modified Files: src/sys/dev/usb: if_urndis.c Log Message: urndis_attach: change "sc->sc_bulkout_no" to "un->un_ed[USBNET_ENDPT_TX]" in DPRINTF(). Kernels ALL/amd64 and ALL/i386 compile again. To generate a diff of this commit: cvs rdiff -u -r1.27 -r1.28 src/sys/dev/usb/if_urndis.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/if_urndis.c diff -u src/sys/dev/usb/if_urndis.c:1.27 src/sys/dev/usb/if_urndis.c:1.28 --- src/sys/dev/usb/if_urndis.c:1.27 Sat Aug 10 02:17:36 2019 +++ src/sys/dev/usb/if_urndis.c Sun Aug 11 13:16:10 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: if_urndis.c,v 1.27 2019/08/10 02:17:36 mrg Exp $ */ +/* $NetBSD: if_urndis.c,v 1.28 2019/08/11 13:16:10 hannken Exp $ */ /* $OpenBSD: if_urndis.c,v 1.31 2011/07/03 15:47:17 matthew Exp $ */ /* @@ -21,7 +21,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: if_urndis.c,v 1.27 2019/08/10 02:17:36 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_urndis.c,v 1.28 2019/08/11 13:16:10 hannken Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" @@ -1032,7 +1032,7 @@ urndis_attach(device_t parent, device_t DPRINTF(("%s: in=0x%x, out=0x%x\n", DEVNAME(un), un->un_ed[USBNET_ENDPT_RX], - sc->sc_bulkout_no)); + un->un_ed[USBNET_ENDPT_TX])); break; } }
CVS commit: src/external/cddl/osnet/dist/lib/libdtrace/common
Module Name:src Committed By: hannken Date: Wed Jul 24 16:57:45 UTC 2019 Modified Files: src/external/cddl/osnet/dist/lib/libdtrace/common: dt_open.c Log Message: Handle automatic module loading on device open more like FreeBSD does. Where FreeBSD uses a module "dtraceall" that depends on all dtrace modules we now load the basic set "dtrace sdt fbt syscall" on open. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 \ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/lib/libdtrace/common
Module Name:src Committed By: hannken Date: Wed Jul 24 16:57:45 UTC 2019 Modified Files: src/external/cddl/osnet/dist/lib/libdtrace/common: dt_open.c Log Message: Handle automatic module loading on device open more like FreeBSD does. Where FreeBSD uses a module "dtraceall" that depends on all dtrace modules we now load the basic set "dtrace sdt fbt syscall" on open. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 \ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c diff -u src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.15 src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.16 --- src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.15 Sun Jul 21 15:38:06 2019 +++ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c Wed Jul 24 16:57:45 2019 @@ -1140,19 +1140,36 @@ dt_vopen(int version, int flags, int *er */ dt_provmod_open(, ); -#ifdef __NetBSD__ +#if defined(__NetBSD__) modctl_load_t cmdargs; + const char * const mod_list[] = { + "dtrace", + "dtrace_sdt", + "dtrace_fbt", + "dtrace_syscall" + }; + + dtfd = -1; + err = 0; + for (i = 0; i < __arraycount(mod_list); i++) { + cmdargs.ml_filename = mod_list[i]; + cmdargs.ml_flags = MODCTL_NO_PROP; + cmdargs.ml_props = NULL; + cmdargs.ml_propslen = 0; - cmdargs.ml_filename = "dtrace"; - cmdargs.ml_flags = MODCTL_NO_PROP; - cmdargs.ml_props = NULL; - cmdargs.ml_propslen = 0; - - (void)modctl(MODCTL_LOAD, ); + if (modctl(MODCTL_LOAD, ) < 0 && errno != EEXIST) { + err = errno; + break; + } + } + if (err == 0) { + dtfd = open("/dev/dtrace/dtrace", O_RDWR); + err = errno; /* save errno from opening dtfd */ + } #endif +#if defined(__FreeBSD__) dtfd = open("/dev/dtrace/dtrace", O_RDWR); err = errno; /* save errno from opening dtfd */ -#if defined(__FreeBSD__) /* * Automatically load the 'dtraceall' module if we couldn't open the * char device.
CVS commit: src/external/cddl/osnet/sys/sys
Module Name:src Committed By: hannken Date: Wed Jul 24 16:54:37 UTC 2019 Removed Files: src/external/cddl/osnet/sys/sys: int_limits.h int_types.h pcpu.h sema.h sig.h thread.h types32.h va_list.h zfs_prop.h Log Message: Remove unneeded includes. To generate a diff of this commit: cvs rdiff -u -r1.1 -r0 src/external/cddl/osnet/sys/sys/int_limits.h \ src/external/cddl/osnet/sys/sys/int_types.h \ src/external/cddl/osnet/sys/sys/types32.h \ src/external/cddl/osnet/sys/sys/va_list.h \ src/external/cddl/osnet/sys/sys/zfs_prop.h cvs rdiff -u -r1.4 -r0 src/external/cddl/osnet/sys/sys/pcpu.h cvs rdiff -u -r1.3 -r0 src/external/cddl/osnet/sys/sys/sema.h \ src/external/cddl/osnet/sys/sys/sig.h cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/sys/sys/thread.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dev/dtrace
Module Name:src Committed By: hannken Date: Tue Jul 23 09:06:12 UTC 2019 Modified Files: src/external/cddl/osnet/dev/dtrace: dtrace_load.c Log Message: Create "dtrace_taskq" here like FreeBSD does. PR kern/54397: Panic when loading a DTrace module whilst DTrace is running To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/dtrace_load.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/dtrace_load.c diff -u src/external/cddl/osnet/dev/dtrace/dtrace_load.c:1.4 src/external/cddl/osnet/dev/dtrace/dtrace_load.c:1.5 --- src/external/cddl/osnet/dev/dtrace/dtrace_load.c:1.4 Mon May 28 21:05:03 2018 +++ src/external/cddl/osnet/dev/dtrace/dtrace_load.c Tue Jul 23 09:06:12 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_load.c,v 1.4 2018/05/28 21:05:03 chs Exp $ */ +/* $NetBSD: dtrace_load.c,v 1.5 2019/07/23 09:06:12 hannken Exp $ */ /* * CDDL HEADER START @@ -88,9 +88,9 @@ dtrace_load(void *dummy) /* Hang our hook for exceptions. */ dtrace_invop_init(); -#ifdef __FreeBSD__ dtrace_taskq = taskq_create("dtrace_taskq", 1, maxclsyspri, 0, 0, 0); +#ifdef __FreeBSD__ dtrace_arena = new_unrhdr(1, INT_MAX, _unr_mtx); /* Register callbacks for linker file load and unload events. */
CVS commit: src/external/cddl/osnet/dev/dtrace
Module Name:src Committed By: hannken Date: Tue Jul 23 09:06:12 UTC 2019 Modified Files: src/external/cddl/osnet/dev/dtrace: dtrace_load.c Log Message: Create "dtrace_taskq" here like FreeBSD does. PR kern/54397: Panic when loading a DTrace module whilst DTrace is running To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/dtrace/dtrace_load.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet
Module Name:src Committed By: hannken Date: Tue Jul 23 07:46:22 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: spa.c src/external/cddl/osnet/dist/uts/common/sys: bitmap.h callb.h src/external/cddl/osnet/sys/sys: cyclic.h Removed Files: src/external/cddl/osnet/sys/sys: bitmap.h callb.h cpupart.h Log Message: Move local changes to files below "external/cddl/osnet/dist/" and remove now unneeded files from "external/cddl/osnet/sys/sys/". - sys/sys/bitmap.h -> dist/uts/common/sys/bitmap.h - sys/sys/callb.h -> dist/uts/common/sys/callb.h Stop including "cpupart.h", not needed for build. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c cvs rdiff -u -r1.1.1.2 -r1.2 \ src/external/cddl/osnet/dist/uts/common/sys/bitmap.h cvs rdiff -u -r1.1.1.3 -r1.2 \ src/external/cddl/osnet/dist/uts/common/sys/callb.h cvs rdiff -u -r1.3 -r0 src/external/cddl/osnet/sys/sys/bitmap.h \ src/external/cddl/osnet/sys/sys/cpupart.h cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/sys/sys/callb.h cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/sys/sys/cyclic.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet
Module Name:src Committed By: hannken Date: Tue Jul 23 07:46:22 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: spa.c src/external/cddl/osnet/dist/uts/common/sys: bitmap.h callb.h src/external/cddl/osnet/sys/sys: cyclic.h Removed Files: src/external/cddl/osnet/sys/sys: bitmap.h callb.h cpupart.h Log Message: Move local changes to files below "external/cddl/osnet/dist/" and remove now unneeded files from "external/cddl/osnet/sys/sys/". - sys/sys/bitmap.h -> dist/uts/common/sys/bitmap.h - sys/sys/callb.h -> dist/uts/common/sys/callb.h Stop including "cpupart.h", not needed for build. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c cvs rdiff -u -r1.1.1.2 -r1.2 \ src/external/cddl/osnet/dist/uts/common/sys/bitmap.h cvs rdiff -u -r1.1.1.3 -r1.2 \ src/external/cddl/osnet/dist/uts/common/sys/callb.h cvs rdiff -u -r1.3 -r0 src/external/cddl/osnet/sys/sys/bitmap.h \ src/external/cddl/osnet/sys/sys/cpupart.h cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/sys/sys/callb.h cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/sys/sys/cyclic.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c:1.9 src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c:1.10 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c:1.9 Wed May 22 08:45:32 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c Tue Jul 23 07:46:22 2019 @@ -77,7 +77,9 @@ #ifdef _KERNEL #include +#ifndef __NetBSD__ #include +#endif #include #endif /* _KERNEL */ Index: src/external/cddl/osnet/dist/uts/common/sys/bitmap.h diff -u src/external/cddl/osnet/dist/uts/common/sys/bitmap.h:1.1.1.2 src/external/cddl/osnet/dist/uts/common/sys/bitmap.h:1.2 --- src/external/cddl/osnet/dist/uts/common/sys/bitmap.h:1.1.1.2 Mon May 28 20:53:01 2018 +++ src/external/cddl/osnet/dist/uts/common/sys/bitmap.h Tue Jul 23 07:46:22 2019 @@ -126,6 +126,12 @@ extern "C" { #endif /* _LP64 */ +#ifdef __NetBSD__ + +#include + +#else /*__NetBSD__ */ + /* * BIT_ONLYONESET is a private macro not designed for bitmaps of * arbitrary size. u must be an unsigned integer/long. It returns @@ -190,6 +196,9 @@ extern int odd_parity(ulong_t); #endif /* _KERNEL && !_ASM */ +#endif /*__NetBSD__ */ + + #ifdef __cplusplus } #endif Index: src/external/cddl/osnet/dist/uts/common/sys/callb.h diff -u src/external/cddl/osnet/dist/uts/common/sys/callb.h:1.1.1.3 src/external/cddl/osnet/dist/uts/common/sys/callb.h:1.2 --- src/external/cddl/osnet/dist/uts/common/sys/callb.h:1.1.1.3 Mon May 28 20:53:01 2018 +++ src/external/cddl/osnet/dist/uts/common/sys/callb.h Tue Jul 23 07:46:22 2019 @@ -130,6 +130,17 @@ typedef struct callb_cpr { * Note: lockp is the lock to protect the callb_cpr_t (cp) structure * later on. No lock held is needed for this initialization. */ +#ifdef __NetBSD__ +#define CALLB_CPR_INIT(cp, lockp, func, name) { \ + /* XXXNETBSD set thread name */\ + bzero((caddr_t)(cp), sizeof (callb_cpr_t)); \ + (cp)->cc_lockp = lockp; \ + (cp)->cc_id = callb_add(func, (void *)(cp), \ + CB_CL_CPR_DAEMON, name); \ + cv_init(&(cp)->cc_callb_cv, NULL, CV_DEFAULT, NULL); \ + cv_init(&(cp)->cc_stop_cv, NULL, CV_DEFAULT, NULL); \ + } +#else #define CALLB_CPR_INIT(cp, lockp, func, name) { \ strlcpy(curthread->td_name, (name), \ sizeof(curthread->td_name)); \ @@ -140,6 +151,7 @@ typedef struct callb_cpr { cv_init(&(cp)->cc_callb_cv, NULL, CV_DEFAULT, NULL); \ cv_init(&(cp)->cc_stop_cv, NULL, CV_DEFAULT, NULL); \ } +#endif #ifndef __lock_lint #define CALLB_CPR_ASSERT(cp) ASSERT(MUTEX_HELD((cp)->cc_lockp)); @@ -206,6 +218,10 @@ extern boolean_t callb_generic_cpr_safe( extern boolean_t callb_is_stopped(kthread_id_t, caddr_t *); extern void callb_lock_table(void); extern void callb_unlock_table(void); +#ifdef __NetBSD__ +extern void callb_init(void *); +extern void callb_fini(void *); +#endif #endif #ifdef __cplusplus Index: src/external/cddl/osnet/sys/sys/cyclic.h diff -u src/external/cddl/osnet/sys/sys/cyclic.h:1.5 src/external/cddl/osnet/sys/sys/cyclic.h:1.6 --- src/external/cddl/osnet/sys/sys/cyclic.h:1.5 Mon May 28 21:05:10 2018 +++ src/external/cddl/osnet/sys/sys/cyclic.h Tue Jul 23 07:46:22 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: cyclic.h,v 1.5 2018/05/28 21:05:10 chs Exp $ */ +/* $NetBSD: cyclic.h,v 1.6 2019/07/23 07:46:22 hannken Exp $ */ /* * CDDL HEADER START @@ -40,7 +40,9 @@ typedef void cpu_t; #ifndef _ASM #include #include +#ifndef __NetBSD__ #include +#endif #endif /* !_ASM */ #define CY_LOW_LEVEL 0
CVS commit: src/external/cddl/osnet/dist/lib/libdtrace/common
Module Name:src Committed By: hannken Date: Sun Jul 21 15:38:06 UTC 2019 Modified Files: src/external/cddl/osnet/dist/lib/libdtrace/common: dt_open.c Log Message: Always use "netbsd" as kernel name, dt_module_update() already takes care to load data from the booted kernel image. To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 \ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/lib/libdtrace/common
Module Name:src Committed By: hannken Date: Sun Jul 21 15:38:06 UTC 2019 Modified Files: src/external/cddl/osnet/dist/lib/libdtrace/common: dt_open.c Log Message: Always use "netbsd" as kernel name, dt_module_update() already takes care to load data from the booted kernel image. To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 \ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c diff -u src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.14 src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.15 --- src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.14 Sun Jul 21 15:37:27 2019 +++ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c Sun Jul 21 15:38:06 2019 @@ -1367,9 +1367,13 @@ alloc: # endif { const char *p; +# ifdef __FreeBSD__ char kernname[512]; p = dt_bootfile(kernname, sizeof(kernname)); +# else + p = "netbsd"; +# endif /* * Format the global variables based on the kernel module name.
CVS commit: src/external/cddl/osnet/dist/lib/libdtrace/common
Module Name:src Committed By: hannken Date: Sun Jul 21 15:37:27 UTC 2019 Modified Files: src/external/cddl/osnet/dist/lib/libdtrace/common: dt_open.c Log Message: Try to load module "dtrace" before opening "/dev/dtrace/dtrace". Fixes PR kern/54387: DTrace Kernel module does not autoload on first use ... To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 \ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/lib/libdtrace/common
Module Name:src Committed By: hannken Date: Sun Jul 21 15:37:27 UTC 2019 Modified Files: src/external/cddl/osnet/dist/lib/libdtrace/common: dt_open.c Log Message: Try to load module "dtrace" before opening "/dev/dtrace/dtrace". Fixes PR kern/54387: DTrace Kernel module does not autoload on first use ... To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 \ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c diff -u src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.13 src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.14 --- src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.13 Mon May 28 21:05:05 2018 +++ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c Sun Jul 21 15:37:27 2019 @@ -1140,6 +1140,16 @@ dt_vopen(int version, int flags, int *er */ dt_provmod_open(, ); +#ifdef __NetBSD__ + modctl_load_t cmdargs; + + cmdargs.ml_filename = "dtrace"; + cmdargs.ml_flags = MODCTL_NO_PROP; + cmdargs.ml_props = NULL; + cmdargs.ml_propslen = 0; + + (void)modctl(MODCTL_LOAD, ); +#endif dtfd = open("/dev/dtrace/dtrace", O_RDWR); err = errno; /* save errno from opening dtfd */ #if defined(__FreeBSD__)
CVS commit: src/sys/kern
Module Name:src Committed By: hannken Date: Thu Jul 18 09:39:40 UTC 2019 Modified Files: src/sys/kern: vfs_lookup.c Log Message: Make namei() work with no root dir yet. >From David Holland with minor tweaks from me. Should fix PR kern/54378 (panic with TLB miss when attempting to reboot) To generate a diff of this commit: cvs rdiff -u -r1.211 -r1.212 src/sys/kern/vfs_lookup.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/vfs_lookup.c diff -u src/sys/kern/vfs_lookup.c:1.211 src/sys/kern/vfs_lookup.c:1.212 --- src/sys/kern/vfs_lookup.c:1.211 Sat Jul 6 14:27:38 2019 +++ src/sys/kern/vfs_lookup.c Thu Jul 18 09:39:40 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_lookup.c,v 1.211 2019/07/06 14:27:38 maxv Exp $ */ +/* $NetBSD: vfs_lookup.c,v 1.212 2019/07/18 09:39:40 hannken Exp $ */ /* * Copyright (c) 1982, 1986, 1989, 1993 @@ -37,7 +37,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: vfs_lookup.c,v 1.211 2019/07/06 14:27:38 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_lookup.c,v 1.212 2019/07/18 09:39:40 hannken Exp $"); #ifdef _KERNEL_OPT #include "opt_magiclinks.h" @@ -515,7 +515,8 @@ namei_cleanup(struct namei_state *state) KASSERT(state->cnp == >ndp->ni_cnd); if (state->root_referenced) { - vrele(state->ndp->ni_rootdir); + if (state->ndp->ni_rootdir != NULL) + vrele(state->ndp->ni_rootdir); if (state->ndp->ni_erootdir != NULL) vrele(state->ndp->ni_erootdir); } @@ -538,7 +539,8 @@ namei_getstartdir(struct namei_state *st struct vnode *rootdir, *erootdir, *curdir, *startdir; if (state->root_referenced) { - vrele(state->ndp->ni_rootdir); + if (state->ndp->ni_rootdir != NULL) + vrele(state->ndp->ni_rootdir); if (state->ndp->ni_erootdir != NULL) vrele(state->ndp->ni_erootdir); state->root_referenced = 0; @@ -595,8 +597,10 @@ namei_getstartdir(struct namei_state *st * Must hold references to rootdir and erootdir while we're running. * A multithreaded process may chroot during namei. */ - vref(startdir); - vref(state->ndp->ni_rootdir); + if (startdir != NULL) + vref(startdir); + if (state->ndp->ni_rootdir != NULL) + vref(state->ndp->ni_rootdir); if (state->ndp->ni_erootdir != NULL) vref(state->ndp->ni_erootdir); state->root_referenced = 1; @@ -616,6 +620,9 @@ namei_getstartdir_for_nfsd(struct namei_ KASSERT(state->ndp->ni_atdir != NULL); /* always use the real root, and never set an emulation root */ + if (rootvnode == NULL) { + return NULL; + } state->ndp->ni_rootdir = rootvnode; state->ndp->ni_erootdir = NULL; @@ -693,6 +700,10 @@ namei_start(struct namei_state *state, i namei_ktrace(state); } + if (startdir == NULL) { + return ENOENT; + } + /* NDAT may feed us with a non directory namei_getstartdir */ if (startdir->v_type != VDIR) { vrele(startdir);
CVS commit: src/sys/kern
Module Name:src Committed By: hannken Date: Thu Jul 18 09:39:40 UTC 2019 Modified Files: src/sys/kern: vfs_lookup.c Log Message: Make namei() work with no root dir yet. >From David Holland with minor tweaks from me. Should fix PR kern/54378 (panic with TLB miss when attempting to reboot) To generate a diff of this commit: cvs rdiff -u -r1.211 -r1.212 src/sys/kern/vfs_lookup.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/tools/ctf/cvt
Module Name:src Committed By: hannken Date: Tue Jul 16 07:27:35 UTC 2019 Modified Files: src/external/cddl/osnet/dist/tools/ctf/cvt: fixup_tdescs.c Log Message: XXX: A crude hack to bring down the number of types for a GENRIC kernel below 2**15-1 (from ~34000 to ~29800). Remove the type attributes "volatile", "const" and "restrict", for DTRACE these attributes are of little value. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/tools/ctf/cvt
Module Name:src Committed By: hannken Date: Tue Jul 16 07:27:35 UTC 2019 Modified Files: src/external/cddl/osnet/dist/tools/ctf/cvt: fixup_tdescs.c Log Message: XXX: A crude hack to bring down the number of types for a GENRIC kernel below 2**15-1 (from ~34000 to ~29800). Remove the type attributes "volatile", "const" and "restrict", for DTRACE these attributes are of little value. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c:1.4 src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c:1.5 --- src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c:1.4 Tue Jul 16 07:26:41 2019 +++ src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c Tue Jul 16 07:27:35 2019 @@ -41,6 +41,7 @@ #include "ctftools.h" #include "hash.h" #include "memory.h" +#include "traverse.h" /* * Due to 4432619, the 6.1 compiler will sometimes incorrectly generate pointer @@ -320,6 +321,55 @@ fix_kmutex_private(tdata_t *td, size_t p } } +/* + * XXX: A crude hack to bring down the number of types for a + * GENRIC kernel below 2**15-1 (from ~34000 to ~29800). + * + * Remove the type attributes "volatile", "const" and "restrict", + * for DTRACE these attributes are of little value. + */ + +static int +fix_kill_attr_cb(tdesc_t *tdp, tdesc_t **tdpp, void *private __unused) +{ + + while (tdp->t_type == VOLATILE || + tdp->t_type == RESTRICT || + tdp->t_type == CONST) + tdp = tdp->t_tdesc; + + *tdpp = tdp; + + return 1; +} + +static tdtrav_cb_f fix_kill_attr_tab[] = { + NULL, + NULL, /* intrinsic */ + NULL, /* pointer */ + NULL, /* reference */ + NULL, /* array */ + NULL, /* function */ + NULL, /* struct */ + NULL, /* union */ + NULL, /* class */ + NULL, /* enum */ + NULL , /* forward */ + NULL, /* typedef */ + NULL, /* typedef unres */ + fix_kill_attr_cb, /* volatile */ + fix_kill_attr_cb, /* const */ + fix_kill_attr_cb, /* restrict */ +}; + +static void +fix_kill_attr(tdata_t *td, size_t ptrsize) +{ + + (void) iitraverse_hash(td->td_iihash, >td_curvgen, + fix_kill_attr_tab, NULL, NULL, NULL); +} + #endif /* __NetBSD__ */ void @@ -328,5 +378,6 @@ cvt_fixups(tdata_t *td, size_t ptrsize) fix_small_cpu_struct(td, ptrsize); #ifdef __NetBSD__ fix_kmutex_private(td, ptrsize); + fix_kill_attr(td, ptrsize); #endif }
CVS commit: src/external/cddl/osnet/dev/fbt
Module Name:src Committed By: hannken Date: Tue Jul 16 07:26:00 UTC 2019 Modified Files: src/external/cddl/osnet/dev/fbt: fbt.c Log Message: Always exclude "fbt_*" from the list of FBT probes. To generate a diff of this commit: cvs rdiff -u -r1.26 -r1.27 src/external/cddl/osnet/dev/fbt/fbt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/tools/ctf/cvt
Module Name:src Committed By: hannken Date: Tue Jul 16 07:26:41 UTC 2019 Modified Files: src/external/cddl/osnet/dist/tools/ctf/cvt: fixup_tdescs.c Log Message: Add fixup operation to remove private mutex types for x86. For GENERIC the number of types goes down from 47351 to 33981. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c:1.3 src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c:1.4 --- src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c:1.3 Wed Feb 24 21:53:26 2010 +++ src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c Tue Jul 16 07:26:41 2019 @@ -276,8 +276,57 @@ fix_small_cpu_struct(tdata_t *td, size_t lml->ml_next = cpum; } +#ifdef __NetBSD__ + +/* + * The kmutex structure comes in two flavours, with or without __MUTEX_PRIVATE + * defined. Since many structures include kmutexes this causes massive amounts + * of duplication on merge (~ 40% for a GENERIC kernel). Remove the private + * fields if we see them. + */ +static void +fix_kmutex_private(tdata_t *td, size_t ptrsize) +{ + tdesc_t *desc; + mlist_t *ml; + + /* + * X86 kmutex is either + * union { + * volatile uintptr_t mtxa_owner; + * } u + * or + * union { + * volatile uintptr_t mtxa_owner; + * struct { + * ... + * } s; + * } u + * so we remove "struct s" if we find it. + */ + if ((desc = lookup_tdesc(td, "kmutex")) != NULL && + desc->t_type == STRUCT && + (ml = desc->t_members) != NULL && + streq(ml->ml_name, "u") && + (desc = ml->ml_type) != NULL && + desc->t_type == UNION && + (ml = desc->t_members) != NULL && + streq(ml->ml_name, "mtxa_owner") && + (ml = ml->ml_next) != NULL && + streq(ml->ml_name, "s") && + ml->ml_next == NULL) { + /* Found, delete member "s". */ + desc->t_members->ml_next = NULL; + } +} + +#endif /* __NetBSD__ */ + void cvt_fixups(tdata_t *td, size_t ptrsize) { fix_small_cpu_struct(td, ptrsize); +#ifdef __NetBSD__ + fix_kmutex_private(td, ptrsize); +#endif }
CVS commit: src/external/cddl/osnet/dist/tools/ctf/cvt
Module Name:src Committed By: hannken Date: Tue Jul 16 07:26:41 UTC 2019 Modified Files: src/external/cddl/osnet/dist/tools/ctf/cvt: fixup_tdescs.c Log Message: Add fixup operation to remove private mutex types for x86. For GENERIC the number of types goes down from 47351 to 33981. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/external/cddl/osnet/dist/tools/ctf/cvt/fixup_tdescs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dev/fbt
Module Name:src Committed By: hannken Date: Tue Jul 16 07:26:00 UTC 2019 Modified Files: src/external/cddl/osnet/dev/fbt: fbt.c Log Message: Always exclude "fbt_*" from the list of FBT probes. To generate a diff of this commit: cvs rdiff -u -r1.26 -r1.27 src/external/cddl/osnet/dev/fbt/fbt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/fbt/fbt.c diff -u src/external/cddl/osnet/dev/fbt/fbt.c:1.26 src/external/cddl/osnet/dev/fbt/fbt.c:1.27 --- src/external/cddl/osnet/dev/fbt/fbt.c:1.26 Sat Mar 9 18:53:52 2019 +++ src/external/cddl/osnet/dev/fbt/fbt.c Tue Jul 16 07:26:00 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: fbt.c,v 1.26 2019/03/09 18:53:52 kamil Exp $ */ +/* $NetBSD: fbt.c,v 1.27 2019/07/16 07:26:00 hannken Exp $ */ /* * CDDL HEADER START @@ -177,7 +177,8 @@ fbt_excluded(const char *name) strncmp(name, "kdb_", 4) == 0 || strncmp(name, "lockdebug_", 10) == 0 || strncmp(name, "kauth_", 5) == 0 || - strncmp(name, "ktext_write", 11) == 0) { + strncmp(name, "ktext_write", 11) == 0 || + strncmp(name, "fbt_", 4) == 0) { return (1); } #endif
CVS commit: src/external/cddl/osnet/dev/dtrace/amd64
Module Name:src Committed By: hannken Date: Fri Jul 5 08:29:19 UTC 2019 Modified Files: src/external/cddl/osnet/dev/dtrace/amd64: dtrace_subr.c Log Message: Change dtrace toxic range to "0 .. VM_MIN_KERNEL_ADDRESS_DEFAULT", the direct map may be mapped below "VM_MIN_KERNEL_ADDRESS". To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 \ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.12 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.13 --- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.12 Sat Jan 12 10:41:31 2019 +++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c Fri Jul 5 08:29:18 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_subr.c,v 1.12 2019/01/12 10:41:31 hannken Exp $ */ +/* $NetBSD: dtrace_subr.c,v 1.13 2019/07/05 08:29:18 hannken Exp $ */ /* * CDDL HEADER START @@ -115,7 +115,7 @@ dtrace_invop_remove(int (*func)(uintptr_ void dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit)) { - (*func)(0, VM_MIN_KERNEL_ADDRESS); + (*func)(0, VM_MIN_KERNEL_ADDRESS_DEFAULT); } static void
CVS commit: src/external/cddl/osnet/dev/dtrace/amd64
Module Name:src Committed By: hannken Date: Fri Jul 5 08:29:19 UTC 2019 Modified Files: src/external/cddl/osnet/dev/dtrace/amd64: dtrace_subr.c Log Message: Change dtrace toxic range to "0 .. VM_MIN_KERNEL_ADDRESS_DEFAULT", the direct map may be mapped below "VM_MIN_KERNEL_ADDRESS". To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 \ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/share/mk
Module Name:src Committed By: hannken Date: Fri Jul 5 08:28:16 UTC 2019 Modified Files: src/share/mk: bsd.kmodule.mk Log Message: When building a module keep symbols if built with "MKCTF" and "COPTS=-g". To generate a diff of this commit: cvs rdiff -u -r1.61 -r1.62 src/share/mk/bsd.kmodule.mk Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/share/mk/bsd.kmodule.mk diff -u src/share/mk/bsd.kmodule.mk:1.61 src/share/mk/bsd.kmodule.mk:1.62 --- src/share/mk/bsd.kmodule.mk:1.61 Thu May 9 23:34:51 2019 +++ src/share/mk/bsd.kmodule.mk Fri Jul 5 08:28:16 2019 @@ -1,4 +1,4 @@ -# $NetBSD: bsd.kmodule.mk,v 1.61 2019/05/09 23:34:51 maya Exp $ +# $NetBSD: bsd.kmodule.mk,v 1.62 2019/07/05 08:28:16 hannken Exp $ # We are not building this with PIE MKPIE=no @@ -11,6 +11,11 @@ CFLAGS+= -g # Only need symbols for ctf, strip them after converting to CTF CTFFLAGS= -L VERSION CTFMFLAGS= -t -L VERSION +# Keep symbols if built with "-g" +.if !empty(COPTS:M*-g*) +CTFFLAGS+= -g +CTFMFLAGS+= -g +.endif .endif .include
CVS commit: src/external/cddl/osnet/dist/uts/common/dtrace
Module Name:src Committed By: hannken Date: Fri Jul 5 08:28:52 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/dtrace: dtrace.c Log Message: Change module type to "MODULE_CLASS_MISC" to allow preloading. Change "dtrace_nullop()" to return zero, it gets casted to "int (*)(...)". To generate a diff of this commit: cvs rdiff -u -r1.38 -r1.39 \ src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/uts/common/dtrace
Module Name:src Committed By: hannken Date: Fri Jul 5 08:28:52 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/dtrace: dtrace.c Log Message: Change module type to "MODULE_CLASS_MISC" to allow preloading. Change "dtrace_nullop()" to return zero, it gets casted to "int (*)(...)". To generate a diff of this commit: cvs rdiff -u -r1.38 -r1.39 \ src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c diff -u src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c:1.38 src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c:1.39 --- src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c:1.38 Fri Jun 29 11:33:47 2018 +++ src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c Fri Jul 5 08:28:52 2019 @@ -395,9 +395,12 @@ static dtrace_pattr_t dtrace_provider_at { DTRACE_STABILITY_STABLE, DTRACE_STABILITY_STABLE, DTRACE_CLASS_COMMON }, }; -static void +static int dtrace_nullop(void) -{} +{ + + return 0; +} static dtrace_pops_t dtrace_provider_ops = { (void (*)(void *, dtrace_probedesc_t *))dtrace_nullop, @@ -18994,5 +18997,5 @@ MODULE_DEPEND(dtrace, opensolaris, 1, 1, #endif /* __FreeBSD__ */ #ifdef __NetBSD__ -MODULE(MODULE_CLASS_DRIVER, dtrace, "solaris"); +MODULE(MODULE_CLASS_MISC, dtrace, "solaris"); #endif /* __NetBSD__ */
CVS commit: src/share/mk
Module Name:src Committed By: hannken Date: Fri Jul 5 08:28:16 UTC 2019 Modified Files: src/share/mk: bsd.kmodule.mk Log Message: When building a module keep symbols if built with "MKCTF" and "COPTS=-g". To generate a diff of this commit: cvs rdiff -u -r1.61 -r1.62 src/share/mk/bsd.kmodule.mk Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS import: src/external/cddl/osnet/dist
Module Name:src Committed By: hannken Date: Wed Jun 26 11:47:55 UTC 2019 Update of /cvsroot/src/external/cddl/osnet/dist In directory ivanova.netbsd.org:/tmp/cvs-serv8829 Log Message: import new CDDL dtrace and ZFS code from FreeBSD svn r315983 Add files missing from the initial import. Status: Vendor Tag: FreeBSD Release Tags: CDDL-FreeBSD-r315983 C src/external/cddl/osnet/dist/OPENSOLARIS.LICENSE C src/external/cddl/osnet/dist/cmd/zdb/zdb.8 C src/external/cddl/osnet/dist/cmd/zfs/zfs.8 C src/external/cddl/osnet/dist/cmd/zpool/zpool-features.7 C src/external/cddl/osnet/dist/cmd/zpool/zpool.8 C src/external/cddl/osnet/dist/head/libintl.h C src/external/cddl/osnet/dist/head/stdio_ext.h C src/external/cddl/osnet/dist/head/thread.h N src/external/cddl/osnet/dist/head/atomic.h N src/external/cddl/osnet/dist/head/synch.h C src/external/cddl/osnet/dist/lib/libzpool/common/sys/zfs_context.h C src/external/cddl/osnet/dist/uts/common/Makefile.files C src/external/cddl/osnet/dist/uts/common/os/fm.c C src/external/cddl/osnet/dist/uts/common/os/callb.c C src/external/cddl/osnet/dist/uts/common/sys/vnode.h C src/external/cddl/osnet/dist/uts/common/sys/sysmacros.h C src/external/cddl/osnet/dist/uts/common/sys/procset.h C src/external/cddl/osnet/dist/uts/common/sys/extdirent.h C src/external/cddl/osnet/dist/uts/common/sys/isa_defs.h N src/external/cddl/osnet/dist/uts/common/sys/asm_linkage.h 17 conflicts created by this import. Use the following command to help the merge: cvs checkout -jFreeBSD:yesterday -jFreeBSD src/external/cddl/osnet/dist
CVS import: src/external/cddl/osnet/dist
Module Name:src Committed By: hannken Date: Wed Jun 26 11:47:55 UTC 2019 Update of /cvsroot/src/external/cddl/osnet/dist In directory ivanova.netbsd.org:/tmp/cvs-serv8829 Log Message: import new CDDL dtrace and ZFS code from FreeBSD svn r315983 Add files missing from the initial import. Status: Vendor Tag: FreeBSD Release Tags: CDDL-FreeBSD-r315983 C src/external/cddl/osnet/dist/OPENSOLARIS.LICENSE C src/external/cddl/osnet/dist/cmd/zdb/zdb.8 C src/external/cddl/osnet/dist/cmd/zfs/zfs.8 C src/external/cddl/osnet/dist/cmd/zpool/zpool-features.7 C src/external/cddl/osnet/dist/cmd/zpool/zpool.8 C src/external/cddl/osnet/dist/head/libintl.h C src/external/cddl/osnet/dist/head/stdio_ext.h C src/external/cddl/osnet/dist/head/thread.h N src/external/cddl/osnet/dist/head/atomic.h N src/external/cddl/osnet/dist/head/synch.h C src/external/cddl/osnet/dist/lib/libzpool/common/sys/zfs_context.h C src/external/cddl/osnet/dist/uts/common/Makefile.files C src/external/cddl/osnet/dist/uts/common/os/fm.c C src/external/cddl/osnet/dist/uts/common/os/callb.c C src/external/cddl/osnet/dist/uts/common/sys/vnode.h C src/external/cddl/osnet/dist/uts/common/sys/sysmacros.h C src/external/cddl/osnet/dist/uts/common/sys/procset.h C src/external/cddl/osnet/dist/uts/common/sys/extdirent.h C src/external/cddl/osnet/dist/uts/common/sys/isa_defs.h N src/external/cddl/osnet/dist/uts/common/sys/asm_linkage.h 17 conflicts created by this import. Use the following command to help the merge: cvs checkout -jFreeBSD:yesterday -jFreeBSD src/external/cddl/osnet/dist
CVS commit: src
Module Name:src Committed By: hannken Date: Mon Jun 24 08:27:21 UTC 2019 Modified Files: src/usr.sbin/fstyp: Makefile Added Files: src/external/cddl/osnet/dist: OPENSOLARIS.LICENSE src/external/cddl/osnet/dist/cmd/zdb: zdb.8 src/external/cddl/osnet/dist/cmd/zfs: zfs.8 src/external/cddl/osnet/dist/cmd/zpool: zpool-features.7 zpool.8 src/external/cddl/osnet/dist/head: libintl.h stdio_ext.h thread.h src/external/cddl/osnet/dist/uts/common/os: callb.c fm.c src/external/cddl/osnet/dist/uts/common/sys: extdirent.h isa_defs.h procset.h sysmacros.h Removed Files: src/external/cddl/osnet: OPENSOLARIS.LICENSE src/external/cddl/osnet/include: libintl.h stdio_ext.h thread.h src/external/cddl/osnet/sbin/zfs: zfs.8 src/external/cddl/osnet/sbin/zpool: zpool-features.7 zpool.8 src/external/cddl/osnet/sys/kern: callb.c fm.c src/external/cddl/osnet/sys/sys: extdirent.h isa_defs.h procset.h sysmacros.h src/external/cddl/osnet/usr.sbin/zdb: zdb.8 Log Message: Sync with upstream r315983. Move files originating from upstream below "dist/": OPENSOLARIS.LICENSE -> dist/OPENSOLARIS.LICENSE usr.sbin/zdb/zdb.8 -> dist/cmd/zdb/zdb.8 sbin/zfs/zfs.8 -> dist/cmd/zfs/zfs.8 sbin/zpool/zpool-features.7 -> dist/cmd/zpool/zpool-features.7 sbin/zpool/zpool.8 -> dist/cmd/zpool/zpool.8 include/libintl.h -> dist/head/libintl.h include/stdio_ext.h -> dist/head/stdio_ext.h include/thread.h -> dist/head/thread.h sys/kern/callb.c -> dist/uts/common/os/callb.c sys/kern/fm.c -> dist/uts/common/os/fm.c sys/sys/extdirent.h -> dist/uts/common/sys/extdirent.h sys/sys/isa_defs.h -> dist/uts/common/sys/isa_defs.h sys/sys/procset.h -> dist/uts/common/sys/procset.h sys/sys/sysmacros.h -> dist/uts/common/sys/sysmacros.h Adapt "usr.sbin/fstyp/Makefile". To generate a diff of this commit: cvs rdiff -u -r1.1 -r0 src/external/cddl/osnet/OPENSOLARIS.LICENSE cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/dist/OPENSOLARIS.LICENSE cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/dist/cmd/zdb/zdb.8 cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/dist/cmd/zfs/zfs.8 cvs rdiff -u -r0 -r1.1 \ src/external/cddl/osnet/dist/cmd/zpool/zpool-features.7 \ src/external/cddl/osnet/dist/cmd/zpool/zpool.8 cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/dist/head/libintl.h \ src/external/cddl/osnet/dist/head/stdio_ext.h \ src/external/cddl/osnet/dist/head/thread.h cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/dist/uts/common/os/callb.c \ src/external/cddl/osnet/dist/uts/common/os/fm.c cvs rdiff -u -r0 -r1.1 \ src/external/cddl/osnet/dist/uts/common/sys/extdirent.h \ src/external/cddl/osnet/dist/uts/common/sys/isa_defs.h \ src/external/cddl/osnet/dist/uts/common/sys/procset.h \ src/external/cddl/osnet/dist/uts/common/sys/sysmacros.h cvs rdiff -u -r1.4 -r0 src/external/cddl/osnet/include/libintl.h cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/include/stdio_ext.h cvs rdiff -u -r1.5 -r0 src/external/cddl/osnet/include/thread.h cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/sbin/zfs/zfs.8 cvs rdiff -u -r1.1 -r0 src/external/cddl/osnet/sbin/zpool/zpool-features.7 cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/sbin/zpool/zpool.8 cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/sys/kern/callb.c cvs rdiff -u -r1.3 -r0 src/external/cddl/osnet/sys/kern/fm.c cvs rdiff -u -r1.1 -r0 src/external/cddl/osnet/sys/sys/extdirent.h cvs rdiff -u -r1.4 -r0 src/external/cddl/osnet/sys/sys/isa_defs.h cvs rdiff -u -r1.3 -r0 src/external/cddl/osnet/sys/sys/procset.h cvs rdiff -u -r1.10 -r0 src/external/cddl/osnet/sys/sys/sysmacros.h cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/usr.sbin/zdb/zdb.8 cvs rdiff -u -r1.4 -r1.5 src/usr.sbin/fstyp/Makefile Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/tools
Module Name:src Committed By: hannken Date: Sat Jun 22 13:42:53 UTC 2019 Modified Files: src/tools/compat: configure configure.ac nbtool_config.h.in src/tools/rpcgen: Makefile Log Message: Update tools/compat/configure for new path of "rpc/types.h". Remove intermediate patch from rpcgen/Makefile. Patch from Nick Hudson, errors from me. To generate a diff of this commit: cvs rdiff -u -r1.95 -r1.96 src/tools/compat/configure cvs rdiff -u -r1.96 -r1.97 src/tools/compat/configure.ac cvs rdiff -u -r1.51 -r1.52 src/tools/compat/nbtool_config.h.in cvs rdiff -u -r1.5 -r1.6 src/tools/rpcgen/Makefile Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/tools/compat/configure diff -u src/tools/compat/configure:1.95 src/tools/compat/configure:1.96 --- src/tools/compat/configure:1.95 Wed Jun 19 23:35:55 2019 +++ src/tools/compat/configure Sat Jun 22 13:42:53 2019 @@ -4098,8 +4098,7 @@ fi fi for ac_header in sys/mtio.h sys/sysmacros.h sys/syslimits.h stdio_ext.h \ - getopt.h features.h malloc.h sys/poll.h pthread.h stddef.h rpc/types.h \ - sys/uio.h + getopt.h features.h malloc.h sys/poll.h pthread.h stddef.h sys/uio.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -4129,13 +4128,33 @@ fi done -for ac_header in rpc/types.h netconfig.h +for ac_header in rpc/types.h do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + ac_fn_c_check_header_mongrel "$LINENO" "rpc/types.h" "ac_cv_header_rpc_types_h" "$ac_includes_default" +if test "x$ac_cv_header_rpc_types_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define HAVE_RPC_TYPES_H 1 +_ACEOF + +else + echo '#include "nbtool_config.h"' >include/$ac_header.new + echo '#include "'$srcdir/../../common/include/$ac_header'"' \ + >>include/$ac_header.new + if cmp include/$ac_header.new include/$ac_header >/dev/null 2>&1; then + rm -f include/$ac_header.new + else + mv -f include/$ac_header.new include/$ac_header + fi +fi + +done + +for ac_header in netconfig.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "netconfig.h" "ac_cv_header_netconfig_h" "$ac_includes_default" +if test "x$ac_cv_header_netconfig_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NETCONFIG_H 1 _ACEOF else @@ -5111,8 +5130,6 @@ else # ifdef _MSC_VER # include # define alloca _alloca -# elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) -# include # else # ifdef HAVE_ALLOCA_H # include @@ -7502,3 +7519,4 @@ if test -n "$ac_unrecognized_opts" && te { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi + Index: src/tools/compat/configure.ac diff -u src/tools/compat/configure.ac:1.96 src/tools/compat/configure.ac:1.97 --- src/tools/compat/configure.ac:1.96 Wed Jun 19 23:33:07 2019 +++ src/tools/compat/configure.ac Sat Jun 22 13:42:53 2019 @@ -1,4 +1,4 @@ -# $NetBSD: configure.ac,v 1.96 2019/06/19 23:33:07 kamil Exp $ +# $NetBSD: configure.ac,v 1.97 2019/06/22 13:42:53 hannken Exp $ # # Autoconf definition file for libnbcompat. # @@ -79,13 +79,21 @@ AC_CHECK_HEADERS(sys/ioctl.h sys/mman.h # Find headers that may not be available. AC_HEADER_DIRENT AC_CHECK_HEADERS(sys/mtio.h sys/sysmacros.h sys/syslimits.h stdio_ext.h \ - getopt.h features.h malloc.h sys/poll.h pthread.h stddef.h rpc/types.h \ - sys/uio.h) + getopt.h features.h malloc.h sys/poll.h pthread.h stddef.h sys/uio.h) AC_CHECK_HEADERS(sys/bswap.h machine/bswap.h sys/cdefs.h machine/endian.h \ sys/endian.h sys/featuretest.h err.h inttypes.h libgen.h paths.h \ libgen.h stdint.h util.h resolv.h arpa/nameser.h,, [test -f include/$ac_header || touch include/$ac_header]) -AC_CHECK_HEADERS(rpc/types.h netconfig.h,, +AC_CHECK_HEADERS(rpc/types.h,, + [echo '#include "nbtool_config.h"' >include/$ac_header.new + echo '#include "'$srcdir/../../common/include/$ac_header'"' \ + >>include/$ac_header.new + if cmp include/$ac_header.new include/$ac_header >/dev/null 2>&1; then + rm -f include/$ac_header.new + else + mv -f include/$ac_header.new include/$ac_header + fi]) +AC_CHECK_HEADERS(netconfig.h,, [echo '#include "nbtool_config.h"' >include/$ac_header.new echo '#include "'$srcdir/../../include/$ac_header'"' \ >>include/$ac_header.new Index: src/tools/compat/nbtool_config.h.in diff -u src/tools/compat/nbtool_config.h.in:1.51 src/tools/compat/nbtool_config.h.in:1.52 --- src/tools/compat/nbtool_config.h.in:1.51 Wed Jun 19 23:35:55 2019 +++ src/tools/compat/nbtool_config.h.in
CVS commit: src/tools
Module Name:src Committed By: hannken Date: Sat Jun 22 13:42:53 UTC 2019 Modified Files: src/tools/compat: configure configure.ac nbtool_config.h.in src/tools/rpcgen: Makefile Log Message: Update tools/compat/configure for new path of "rpc/types.h". Remove intermediate patch from rpcgen/Makefile. Patch from Nick Hudson, errors from me. To generate a diff of this commit: cvs rdiff -u -r1.95 -r1.96 src/tools/compat/configure cvs rdiff -u -r1.96 -r1.97 src/tools/compat/configure.ac cvs rdiff -u -r1.51 -r1.52 src/tools/compat/nbtool_config.h.in cvs rdiff -u -r1.5 -r1.6 src/tools/rpcgen/Makefile Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src
Module Name:src Committed By: hannken Date: Sat Jun 22 09:48:40 UTC 2019 Modified Files: src/external/cddl/osnet: Makefile.zfs src/external/cddl/osnet/dist/uts/common/fs/zfs/sys: zfs_context.h src/usr.sbin/fstyp: Makefile Added Files: src/external/cddl/osnet/dist/lib/libzpool/common/sys: zfs_context.h Removed Files: src/external/cddl/osnet/sys/sys: zfs_context.h Log Message: Sync with upstream r315983. FreeBSD splits "zfs_context.h" into: "lib/libzpool/common/sys/zfs_context.h" for user space "uts/common/fs/zfs/sys/zfs_context.h" for kernel space Do the same here, move and sync "sys/sys/zfs_context.h" to "dist/lib/libzpool/common/sys/zfs_context.h" and "dist/uts/common/fs/zfs/sys/zfs_context.h". Change "Makefile.zfs" to search includes from "dist/lib" before "dist/uts" so we get the right include file. Adapt "usr.sbin/fstyp/Makefile" to get the right include file. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/external/cddl/osnet/Makefile.zfs cvs rdiff -u -r0 -r1.1 \ src/external/cddl/osnet/dist/lib/libzpool/common/sys/zfs_context.h cvs rdiff -u -r1.1.1.3 -r1.2 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zfs_context.h cvs rdiff -u -r1.22 -r0 src/external/cddl/osnet/sys/sys/zfs_context.h cvs rdiff -u -r1.3 -r1.4 src/usr.sbin/fstyp/Makefile Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Fri Jun 21 10:59:50 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: dmu_tx.c Log Message: Disable assertion: illumos 7793 ztest fails assertion in dmu_tx_willuse_space To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c:1.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c:1.4 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c:1.3 Sun Jun 3 03:05:56 2018 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c Fri Jun 21 10:59:50 2019 @@ -1427,8 +1427,10 @@ dmu_tx_willuse_space(dmu_tx_t *tx, int64 return; if (delta > 0) { +/* FreeBSD r318821, illumos 7793 ztest fails assertion in dmu_tx_willuse_space ASSERT3U(refcount_count(>tx_space_written) + delta, <=, tx->tx_space_towrite); +*/ (void) refcount_add_many(>tx_space_written, delta, NULL); } else { (void) refcount_add_many(>tx_space_freed, -delta, NULL);
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Fri Jun 21 10:59:50 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: dmu_tx.c Log Message: Disable assertion: illumos 7793 ztest fails assertion in dmu_tx_willuse_space To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet
Module Name:src Committed By: hannken Date: Wed Jun 19 08:18:01 UTC 2019 Modified Files: src/external/cddl/osnet/include: libintl.h stdio_ext.h thread.h src/external/cddl/osnet/sys/sys: isa_defs.h procset.h sysmacros.h Log Message: Sync with upstream r315983. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/include/libintl.h cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/include/stdio_ext.h cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/include/thread.h cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/sys/sys/isa_defs.h cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/sys/sys/procset.h cvs rdiff -u -r1.9 -r1.10 src/external/cddl/osnet/sys/sys/sysmacros.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/include/libintl.h diff -u src/external/cddl/osnet/include/libintl.h:1.3 src/external/cddl/osnet/include/libintl.h:1.4 --- src/external/cddl/osnet/include/libintl.h:1.3 Sun Feb 21 01:46:34 2010 +++ src/external/cddl/osnet/include/libintl.h Wed Jun 19 08:18:01 2019 @@ -1,42 +1,107 @@ -/* $NetBSD: libintl.h,v 1.3 2010/02/21 01:46:34 darran Exp $ */ - -/*- - * Copyright (c) 2009 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Andrew Doran. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - *notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - *notice, this list of conditions and the following disclaimer in the - *documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright 2014 Garrett D'Amore + * + * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ -#ifndef _LIBINTL_H_ -#define _LIBINTL_H_ -#include -#include +#ifndef _LIBINTL_H +#define _LIBINTL_H + +#ifdef __NetBSD__ #define textdomain(domain) 0 #define gettext(...) (__VA_ARGS__) #define dgettext(domain, ...) (__VA_ARGS__) -#endif /* !_SOLARIS_H_ */ +#else /* __NetBSD__ */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * wchar_t is a built-in type in standard C++ and as such is not + * defined here when using standard C++. However, the GNU compiler + * fixincludes utility nonetheless creates its own version of this + * header for use by gcc and g++. In that version it adds a redundant + * guard for __cplusplus. To avoid the creation of a gcc/g++ specific + * header we need to include the following magic comment: + * + * we must use the C++ compiler's type + * + * The above comment should not be removed or changed until GNU + * gcc/fixinc/inclhack.def is updated to bypass this header. + */ +#if !defined(__cplusplus) || (__cplusplus < 199711L && !defined(__GNUG__)) +#ifndef _WCHAR_T +#define _WCHAR_T +#if defined(_LP64) +typedef int wchar_t; +#else +typedef long wchar_t; +#endif +#endif /* !_WCHAR_T */ +#endif /* !defined(__cplusplus) ... */ + +#define TEXTDOMAINMAX 256 + +#define
CVS commit: src/external/cddl/osnet
Module Name:src Committed By: hannken Date: Wed Jun 19 08:18:01 UTC 2019 Modified Files: src/external/cddl/osnet/include: libintl.h stdio_ext.h thread.h src/external/cddl/osnet/sys/sys: isa_defs.h procset.h sysmacros.h Log Message: Sync with upstream r315983. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/include/libintl.h cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/include/stdio_ext.h cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/include/thread.h cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/sys/sys/isa_defs.h cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/sys/sys/procset.h cvs rdiff -u -r1.9 -r1.10 src/external/cddl/osnet/sys/sys/sysmacros.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Mon Jun 17 08:09:57 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vfsops.c Log Message: Add native vfs_suspend()/vfs_resume() before and after zfs_suspend_fs()/zfs_resume_fs() and get rid of dead "z_sa_hdl == NULL" znodes before vfs_resume() to keep the vnode cache consistent. Live rollback should work now. PR port-xen/54273 ("zpool create pool xbd2" panics DOMU kernel) To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.23 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.24 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.23 Wed May 22 08:45:32 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c Mon Jun 17 08:09:57 2019 @@ -121,6 +121,7 @@ VFS_SET(zfs_vfsops, zfs, VFCF_JAIL | VFC #ifdef __NetBSD__ +#include #include #include @@ -2669,8 +2670,17 @@ zfs_suspend_fs(zfsvfs_t *zfsvfs) { int error; +#ifdef __NetBSD__ + if ((error = vfs_suspend(zfsvfs->z_vfs, 0)) != 0) + return error; + if ((error = zfsvfs_teardown(zfsvfs, B_FALSE)) != 0) { + vfs_resume(zfsvfs->z_vfs); + return (error); + } +#else if ((error = zfsvfs_teardown(zfsvfs, B_FALSE)) != 0) return (error); +#endif return (0); } @@ -2682,6 +2692,16 @@ zfs_suspend_fs(zfsvfs_t *zfsvfs) * are the same: the relevant objset and associated dataset are owned by * zfsvfs, held, and long held on entry. */ +#ifdef __NetBSD__ +static bool +zfs_resume_selector(void *cl, struct vnode *vp) +{ + + if (zfsctl_is_node(vp)) + return false; + return (VTOZ(vp)->z_sa_hdl == NULL); +} +#endif int zfs_resume_fs(zfsvfs_t *zfsvfs, dsl_dataset_t *ds) { @@ -2725,6 +2745,18 @@ bail: /* release the VOPs */ rw_exit(>z_teardown_inactive_lock); rrm_exit(>z_teardown_lock, FTAG); +#ifdef __NetBSD__ + struct vnode_iterator *marker; + vnode_t *vp; + + vfs_vnode_iterator_init(zfsvfs->z_vfs, ); + while ((vp = vfs_vnode_iterator_next(marker, + zfs_resume_selector, NULL))) { + vgone(vp); + } + vfs_vnode_iterator_destroy(marker); + vfs_resume(zfsvfs->z_vfs); +#endif if (err) { /*
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Mon Jun 17 08:09:57 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vfsops.c Log Message: Add native vfs_suspend()/vfs_resume() before and after zfs_suspend_fs()/zfs_resume_fs() and get rid of dead "z_sa_hdl == NULL" znodes before vfs_resume() to keep the vnode cache consistent. Live rollback should work now. PR port-xen/54273 ("zpool create pool xbd2" panics DOMU kernel) To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet
Module Name:src Committed By: hannken Date: Mon Jun 17 08:08:51 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_znode.c src/external/cddl/osnet/sys/sys: zfs_context.h Log Message: Unmap pages when zfs_rezget() re-establishes a znode with its dbufs. To generate a diff of this commit: cvs rdiff -u -r1.28 -r1.29 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c cvs rdiff -u -r1.21 -r1.22 src/external/cddl/osnet/sys/sys/zfs_context.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.28 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.29 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.28 Sun May 26 10:21:00 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c Mon Jun 17 08:08:50 2019 @@ -1560,10 +1560,14 @@ zfs_rezget(znode_t *zp) zp->z_unlinked = (zp->z_links == 0); zp->z_blksz = doi.doi_data_block_size; +#ifdef __NetBSD__ + mutex_enter(vp->v_interlock); + (void)VOP_PUTPAGES(vp, 0, 0, PGO_ALLPAGES|PGO_FREE|PGO_SYNCIO); +#else vn_pages_remove(vp, 0, 0); +#endif if (zp->z_size != size) vnode_pager_setsize(vp, zp->z_size); - ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num); return (0); Index: src/external/cddl/osnet/sys/sys/zfs_context.h diff -u src/external/cddl/osnet/sys/sys/zfs_context.h:1.21 src/external/cddl/osnet/sys/sys/zfs_context.h:1.22 --- src/external/cddl/osnet/sys/sys/zfs_context.h:1.21 Tue May 7 08:49:59 2019 +++ src/external/cddl/osnet/sys/sys/zfs_context.h Mon Jun 17 08:08:51 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: zfs_context.h,v 1.21 2019/05/07 08:49:59 hannken Exp $ */ +/* $NetBSD: zfs_context.h,v 1.22 2019/06/17 08:08:51 hannken Exp $ */ /* * CDDL HEADER START @@ -777,7 +777,6 @@ vsprintf(char * __restrict buf, const ch void zfs_netbsd_setsize(vnode_t *, off_t); #define vnode_pager_setsize(vp, size) zfs_netbsd_setsize(vp, size) -#define vn_pages_remove(a, b, c) #define getf fd_getfile #define releasef fd_putfile
CVS commit: src/external/cddl/osnet
Module Name:src Committed By: hannken Date: Mon Jun 17 08:08:51 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_znode.c src/external/cddl/osnet/sys/sys: zfs_context.h Log Message: Unmap pages when zfs_rezget() re-establishes a znode with its dbufs. To generate a diff of this commit: cvs rdiff -u -r1.28 -r1.29 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c cvs rdiff -u -r1.21 -r1.22 src/external/cddl/osnet/sys/sys/zfs_context.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Mon Jun 17 08:08:21 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c Log Message: Add fstrans_start()/fstrans_done() and bounds check to zfs_netbsd_getpages(). To generate a diff of this commit: cvs rdiff -u -r1.49 -r1.50 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.49 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.50 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.49 Mon Jun 17 08:07:56 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Mon Jun 17 08:08:21 2019 @@ -5892,6 +5892,7 @@ zfs_netbsd_getpages(void *v) kmutex_t * const mtx = uobj->vmobjlock; znode_t *zp = VTOZ(vp); zfsvfs_t *zfsvfs = zp->z_zfsvfs; + vfs_t *mp; struct vm_page *pg; caddr_t va; int npages, found, err = 0; @@ -5910,10 +5911,22 @@ zfs_netbsd_getpages(void *v) return EBUSY; } + mp = vp->v_mount; + fstrans_start(mp); + if (vp->v_mount != mp) { + fstrans_done(mp); + return ENOENT; + } ZFS_ENTER(zfsvfs); ZFS_VERIFY_ZP(zp); mutex_enter(mtx); + if (offset >= vp->v_size) { + mutex_exit(mtx); + ZFS_EXIT(zfsvfs); + fstrans_done(mp); + return EINVAL; + } npages = 1; pg = NULL; uvn_findpages(uobj, offset, , , UFP_ALL); @@ -5943,6 +5956,7 @@ zfs_netbsd_getpages(void *v) ap->a_m[ap->a_centeridx] = pg; ZFS_EXIT(zfsvfs); + fstrans_done(mp); return (err); }
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Mon Jun 17 08:08:21 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c Log Message: Add fstrans_start()/fstrans_done() and bounds check to zfs_netbsd_getpages(). To generate a diff of this commit: cvs rdiff -u -r1.49 -r1.50 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Mon Jun 17 08:07:56 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c Log Message: Skip atime update on dead "z_sa_hdl == NULL" znodes. To generate a diff of this commit: cvs rdiff -u -r1.48 -r1.49 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.48 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.49 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.48 Mon Apr 15 12:59:38 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Mon Jun 17 08:07:56 2019 @@ -5759,7 +5759,7 @@ zfs_netbsd_reclaim(void *v) /* * Process a deferred atime update. */ - if (zp->z_atime_dirty && zp->z_unlinked == 0) { + if (zp->z_atime_dirty && zp->z_unlinked == 0 && zp->z_sa_hdl != NULL) { dmu_tx_t *tx = dmu_tx_create(zfsvfs->z_os); dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_FALSE);
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Mon Jun 17 08:07:56 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c Log Message: Skip atime update on dead "z_sa_hdl == NULL" znodes. To generate a diff of this commit: cvs rdiff -u -r1.48 -r1.49 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/kern
Module Name:src Committed By: hannken Date: Mon Jun 17 08:07:27 UTC 2019 Modified Files: src/sys/kern: vfs_trans.c Log Message: Add an owner field to fstrans mount info and use it to hold the thread currently suspending this mount. Remove now unneeded state FSTRANS_EXCL. It is now possible to suspend a file system from a thread already holding fstrans locks. Use with care ... To generate a diff of this commit: cvs rdiff -u -r1.60 -r1.61 src/sys/kern/vfs_trans.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/kern
Module Name:src Committed By: hannken Date: Mon Jun 17 08:07:27 UTC 2019 Modified Files: src/sys/kern: vfs_trans.c Log Message: Add an owner field to fstrans mount info and use it to hold the thread currently suspending this mount. Remove now unneeded state FSTRANS_EXCL. It is now possible to suspend a file system from a thread already holding fstrans locks. Use with care ... To generate a diff of this commit: cvs rdiff -u -r1.60 -r1.61 src/sys/kern/vfs_trans.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/vfs_trans.c diff -u src/sys/kern/vfs_trans.c:1.60 src/sys/kern/vfs_trans.c:1.61 --- src/sys/kern/vfs_trans.c:1.60 Mon May 13 08:16:56 2019 +++ src/sys/kern/vfs_trans.c Mon Jun 17 08:07:27 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_trans.c,v 1.60 2019/05/13 08:16:56 hannken Exp $ */ +/* $NetBSD: vfs_trans.c,v 1.61 2019/06/17 08:07:27 hannken Exp $ */ /*- * Copyright (c) 2007 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: vfs_trans.c,v 1.60 2019/05/13 08:16:56 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_trans.c,v 1.61 2019/06/17 08:07:27 hannken Exp $"); /* * File system transaction operations. @@ -55,8 +55,7 @@ __KERNEL_RCSID(0, "$NetBSD: vfs_trans.c, enum fstrans_lock_type { FSTRANS_LAZY, /* Granted while not suspended */ - FSTRANS_SHARED, /* Granted while not suspending */ - FSTRANS_EXCL /* Internal: exclusive lock */ + FSTRANS_SHARED /* Granted while not suspending */ }; struct fscow_handler { @@ -83,6 +82,7 @@ struct fstrans_mount_info { bool fmi_cow_change; LIST_HEAD(, fscow_handler) fmi_cow_handler; struct mount *fmi_mount; + struct lwp *fmi_owner; }; static kmutex_t vfs_suspend_lock; /* Serialize suspensions. */ @@ -101,7 +101,8 @@ static inline struct fstrans_lwp_info * fstrans_get_lwp_info(struct mount *, bool); static struct fstrans_lwp_info *fstrans_alloc_lwp_info(struct mount *); static inline int _fstrans_start(struct mount *, enum fstrans_lock_type, int); -static bool grant_lock(const enum fstrans_state, const enum fstrans_lock_type); +static bool grant_lock(const struct fstrans_mount_info *, +const enum fstrans_lock_type); static bool state_change_done(const struct fstrans_mount_info *); static bool cow_state_change_done(const struct fstrans_mount_info *); static void cow_change_enter(struct fstrans_mount_info *); @@ -233,6 +234,7 @@ fstrans_mount_dtor(struct fstrans_mount_ KASSERT(fmi->fmi_state == FSTRANS_NORMAL); KASSERT(LIST_FIRST(>fmi_cow_handler) == NULL); + KASSERT(fmi->fmi_owner == NULL); KASSERT(fstrans_gone_count > 0); fstrans_gone_count -= 1; @@ -258,6 +260,7 @@ fstrans_mount(struct mount *mp) LIST_INIT(>fmi_cow_handler); newfmi->fmi_cow_change = false; newfmi->fmi_mount = mp; + newfmi->fmi_owner = NULL; mutex_enter(_mount_lock); mp->mnt_transinfo = newfmi; @@ -433,14 +436,15 @@ fstrans_get_lwp_info(struct mount *mp, b * Check if this lock type is granted at this state. */ static bool -grant_lock(const enum fstrans_state state, const enum fstrans_lock_type type) +grant_lock(const struct fstrans_mount_info *fmi, +const enum fstrans_lock_type type) { - if (__predict_true(state == FSTRANS_NORMAL)) + if (__predict_true(fmi->fmi_state == FSTRANS_NORMAL)) return true; - if (type == FSTRANS_EXCL) + if (fmi->fmi_owner == curlwp) return true; - if (state == FSTRANS_SUSPENDING && type == FSTRANS_LAZY) + if (fmi->fmi_state == FSTRANS_SUSPENDING && type == FSTRANS_LAZY) return true; return false; @@ -468,14 +472,13 @@ _fstrans_start(struct mount *mp, enum fs fmi = fli->fli_mountinfo; if (fli->fli_trans_cnt > 0) { - KASSERT(lock_type != FSTRANS_EXCL); fli->fli_trans_cnt += 1; return 0; } s = pserialize_read_enter(); - if (__predict_true(grant_lock(fmi->fmi_state, lock_type))) { + if (__predict_true(grant_lock(fmi, lock_type))) { fli->fli_trans_cnt = 1; fli->fli_lock_type = lock_type; pserialize_read_exit(s); @@ -488,7 +491,7 @@ _fstrans_start(struct mount *mp, enum fs return EBUSY; mutex_enter(_lock); - while (! grant_lock(fmi->fmi_state, lock_type)) + while (! grant_lock(fmi, lock_type)) cv_wait(_state_cv, _lock); fli->fli_trans_cnt = 1; fli->fli_lock_type = lock_type; @@ -572,15 +575,14 @@ int fstrans_is_owner(struct mount *mp) { struct fstrans_lwp_info *fli; + struct fstrans_mount_info *fmi; KASSERT(mp != dead_rootmount); fli = fstrans_get_lwp_info(mp, true); + fmi = fli->fli_mountinfo; - if (fli->fli_trans_cnt == 0) - return 0; - - return (fli->fli_lock_type == FSTRANS_EXCL); + return (fmi->fmi_owner == curlwp); } /* @@ -598,7 +600,9 @@ state_change_done(const struct fstrans_m continue; if (fli->fli_trans_cnt == 0) continue; - if (grant_lock(fmi->fmi_state, fli->fli_lock_type)) + if (fli->fli_self == curlwp) + continue; + if
CVS commit: src/tests/fs/zfs
Module Name:src Committed By: hannken Date: Tue Jun 11 14:00:16 UTC 2019 Modified Files: src/tests/fs/zfs: t_zpool.sh Log Message: Need rumpdev_disk for rumpfs_zfs. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/tests/fs/zfs/t_zpool.sh Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/tests/fs/zfs
Module Name:src Committed By: hannken Date: Tue Jun 11 14:00:16 UTC 2019 Modified Files: src/tests/fs/zfs: t_zpool.sh Log Message: Need rumpdev_disk for rumpfs_zfs. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/tests/fs/zfs/t_zpool.sh Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/tests/fs/zfs/t_zpool.sh diff -u src/tests/fs/zfs/t_zpool.sh:1.4 src/tests/fs/zfs/t_zpool.sh:1.5 --- src/tests/fs/zfs/t_zpool.sh:1.4 Sun Dec 16 14:04:14 2018 +++ src/tests/fs/zfs/t_zpool.sh Tue Jun 11 14:00:16 2019 @@ -1,4 +1,4 @@ -# $NetBSD: t_zpool.sh,v 1.4 2018/12/16 14:04:14 hannken Exp $ +# $NetBSD: t_zpool.sh,v 1.5 2019/06/11 14:00:16 hannken Exp $ # # Copyright (c) 2011 The NetBSD Foundation, Inc. # All rights reserved. @@ -25,7 +25,7 @@ # POSSIBILITY OF SUCH DAMAGE. # -server='rump_server -lrumpvfs -lrumpkern_solaris -lrumpfs_zfs -lrumpdev -lrumpdev_rnd -d key=/dk,hostpath=zfs.img,size=100m' +server='rump_server -lrumpvfs -lrumpdev_disk -lrumpkern_solaris -lrumpfs_zfs -lrumpdev -lrumpdev_rnd -d key=/dk,hostpath=zfs.img,size=100m' export RUMP_SERVER=unix://zsuck
CVS commit: src/external/cddl/osnet/sys/kern
Module Name:src Committed By: hannken Date: Tue Jun 11 09:05:33 UTC 2019 Modified Files: src/external/cddl/osnet/sys/kern: taskq.c Log Message: There is no 1:1 relation between cv_signal() and cv_timedwait() as the latter implicitly calls cv_signal() on error. This leads to "tq_waiting > 0" with "tq_running == 0" and the taskq stalls. Change task_executor() to increment and decrement "tq_waiting" and always check and run the queue after cv_timedwait(). Use mstohz(), fix timeout and sort includes. Addresses PR port-xen/54273: "zpool create pool xbd2" panics DOMU kernel To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/external/cddl/osnet/sys/kern/taskq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/sys/kern/taskq.c diff -u src/external/cddl/osnet/sys/kern/taskq.c:1.9 src/external/cddl/osnet/sys/kern/taskq.c:1.10 --- src/external/cddl/osnet/sys/kern/taskq.c:1.9 Tue May 7 08:49:59 2019 +++ src/external/cddl/osnet/sys/kern/taskq.c Tue Jun 11 09:05:33 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: taskq.c,v 1.9 2019/05/07 08:49:59 hannken Exp $ */ +/* $NetBSD: taskq.c,v 1.10 2019/06/11 09:05:33 hannken Exp $ */ /*- * Copyright (c) 2019 The NetBSD Foundation, Inc. @@ -30,9 +30,11 @@ */ #include -#include +#include #include +#include #include +#include #include #include @@ -65,7 +67,7 @@ static specificdata_key_t taskq_lwp_key; /* * Threadpool job to service tasks from task queue. - * Runs until the task queue gets destroyed or the queue is empty for 5 secs. + * Runs until the task queue gets destroyed or the queue is empty for 10 secs. */ static void task_executor(struct threadpool_job *job) @@ -73,22 +75,27 @@ task_executor(struct threadpool_job *job struct taskq_executor *state = (struct taskq_executor *)job; taskq_t *tq = state->te_self; taskq_ent_t *tqe; + int error; lwp_setspecific(taskq_lwp_key, tq); mutex_enter(>tq_lock); while (!tq->tq_destroyed) { - tqe = SIMPLEQ_FIRST(>tq_list); - if (tqe == NULL) { + if (SIMPLEQ_EMPTY(>tq_list)) { if (ISSET(tq->tq_flags, TASKQ_DYNAMIC)) break; tq->tq_waiting++; - if (cv_timedwait(>tq_cv, >tq_lock, 5000) != 0) { -tq->tq_waiting--; -break; + error = cv_timedwait(>tq_cv, >tq_lock, + mstohz(1)); + tq->tq_waiting--; + if (SIMPLEQ_EMPTY(>tq_list)) { +if (error) + break; +continue; } - continue; } + tqe = SIMPLEQ_FIRST(>tq_list); + KASSERT(tqe != NULL); SIMPLEQ_REMOVE_HEAD(>tq_list, tqent_list); tqe->tqent_queued = 0; mutex_exit(>tq_lock); @@ -144,7 +151,6 @@ taskq_dispatch_common(taskq_t *tq, taskq tq->tq_active++; if (tq->tq_waiting) { cv_signal(>tq_cv); - tq->tq_waiting--; mutex_exit(>tq_lock); return; }
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Tue Jun 11 09:04:37 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: vdev_disk.c src/external/cddl/osnet/dist/uts/common/fs/zfs/sys: vdev_disk.h Log Message: Try to retrieve the per-disk maximum transfer size and use it instead of MAXPHYS. Eagerly waiting for the merge of tls-maxphys. Addresses PR port-xen/54273: "zpool create pool xbd2" panics DOMU kernel To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c cvs rdiff -u -r1.3 -r1.4 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Tue Jun 11 09:04:37 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: vdev_disk.c src/external/cddl/osnet/dist/uts/common/fs/zfs/sys: vdev_disk.h Log Message: Try to retrieve the per-disk maximum transfer size and use it instead of MAXPHYS. Eagerly waiting for the merge of tls-maxphys. Addresses PR port-xen/54273: "zpool create pool xbd2" panics DOMU kernel To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c cvs rdiff -u -r1.3 -r1.4 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.9 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.10 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.9 Sun May 26 10:22:59 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c Tue Jun 11 09:04:37 2019 @@ -219,6 +219,27 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi return (SET_ERROR(EINVAL)); } + /* XXXNETBSD Once tls-maxphys gets merged this block becomes: + pdk = disk_find_blk(vp->v_rdev); + dvd->vd_maxphys = (pdk ? disk_maxphys(pdk) : MACHINE_MAXPHYS); + */ + { + struct buf buf = { b_bcount: MAXPHYS }; + const char *dev_name; + + dev_name = devsw_blk2name(major(vp->v_rdev)); + if (dev_name) { + char disk_name[16]; + + snprintf(disk_name, sizeof(disk_name), "%s%d", + dev_name, DISKUNIT(vp->v_rdev)); + pdk = disk_find(disk_name); + if (pdk && pdk->dk_driver && pdk->dk_driver->d_minphys) +(*pdk->dk_driver->d_minphys)(); + } + dvd->vd_maxphys = buf.b_bcount; + } + /* * XXXNETBSD Compare the devid to the stored value. */ @@ -421,6 +442,7 @@ vdev_disk_io_start(zio_t *zio) zio_interrupt(zio); return; } + ASSERT3U(dvd->vd_maxphys, >, 0); vp = dvd->vd_vp; #endif @@ -473,7 +495,7 @@ vdev_disk_io_start(zio_t *zio) mutex_exit(vp->v_interlock); } - if (bp->b_bcount <= MAXPHYS) { + if (bp->b_bcount <= dvd->vd_maxphys) { /* We can do this I/O in one pass. */ (void)VOP_STRATEGY(vp, bp); } else { @@ -484,7 +506,7 @@ vdev_disk_io_start(zio_t *zio) resid = zio->io_size; off = 0; while (resid != 0) { - size = uimin(resid, MAXPHYS); + size = uimin(resid, dvd->vd_maxphys); nbp = getiobuf(vp, true); nbp->b_blkno = btodb(zio->io_offset + off); /* Below call increments v_numoutput. */ Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h:1.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h:1.4 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h:1.3 Mon May 28 21:05:07 2018 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h Tue Jun 11 09:04:37 2019 @@ -52,6 +52,7 @@ typedef struct vdev_disk { char*vd_minor; vnode_t *vd_vp; struct workqueue *vd_wq; + int vd_maxphys; #endif } vdev_disk_t; #endif
CVS commit: src/external/cddl/osnet/sys/kern
Module Name:src Committed By: hannken Date: Fri Jun 7 10:31:21 UTC 2019 Modified Files: src/external/cddl/osnet/sys/kern: callb.c fm.c Log Message: Sync with upstream r315983. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/sys/kern/callb.c cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/sys/kern/fm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/sys/kern
Module Name:src Committed By: hannken Date: Fri Jun 7 10:31:21 UTC 2019 Modified Files: src/external/cddl/osnet/sys/kern: callb.c fm.c Log Message: Sync with upstream r315983. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/sys/kern/callb.c cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/sys/kern/fm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/sys/kern/callb.c diff -u src/external/cddl/osnet/sys/kern/callb.c:1.1 src/external/cddl/osnet/sys/kern/callb.c:1.2 --- src/external/cddl/osnet/sys/kern/callb.c:1.1 Fri Aug 7 20:57:57 2009 +++ src/external/cddl/osnet/sys/kern/callb.c Fri Jun 7 10:31:21 2019 @@ -1,12 +1,9 @@ -/* $NetBSD: callb.c,v 1.1 2009/08/07 20:57:57 haad Exp $ */ - /* * CDDL HEADER START * * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. @@ -22,12 +19,10 @@ * CDDL HEADER END */ /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include #include #include @@ -111,14 +106,24 @@ void callb_fini(void *dummy __unused) { callb_t *cp; + int i; mutex_enter(>ct_lock); - while ((cp = ct->ct_freelist) != NULL) { - ct->ct_freelist = cp->c_next; - ct->ct_ncallb--; - kmem_free(cp, sizeof (callb_t)); + for (i = 0; i < 16; i++) { + while ((cp = ct->ct_freelist) != NULL) { + ct->ct_freelist = cp->c_next; + ct->ct_ncallb--; + kmem_free(cp, sizeof (callb_t)); + } + if (ct->ct_ncallb == 0) + break; + /* Not all callbacks finished, waiting for the rest. */ + mutex_exit(>ct_lock); + tsleep(ct, 0, "callb", hz / 4); + mutex_enter(>ct_lock); } - ASSERT(ct->ct_ncallb == 0); + if (ct->ct_ncallb > 0) + printf("%s: Leaked %d callbacks!\n", __func__, ct->ct_ncallb); mutex_exit(>ct_lock); mutex_destroy(_safe_mutex); mutex_destroy(_table.ct_lock); @@ -270,7 +275,7 @@ callb_execute_class(int class, int code) #ifdef CALLB_DEBUG printf("callb_execute: name=%s func=%p arg=%p\n", - cp->c_name, (void *)cp->c_func, (void *)cp->c_arg); + cp->c_name, (void *)cp->c_func, (void *)cp->c_arg); #endif /* CALLB_DEBUG */ mutex_exit(>ct_lock); @@ -309,12 +314,14 @@ callb_generic_cpr(void *arg, int code) switch (code) { case CB_CODE_CPR_CHKPT: cp->cc_events |= CALLB_CPR_START; +#ifdef CPR_NOT_THREAD_SAFE while (!(cp->cc_events & CALLB_CPR_SAFE)) /* cv_timedwait() returns -1 if it times out. */ - if ((ret = cv_timedwait(>cc_callb_cv, - cp->cc_lockp, - callb_timeout_sec * hz)) == -1) + if ((ret = cv_reltimedwait(>cc_callb_cv, + cp->cc_lockp, (callb_timeout_sec * hz), + TR_CLOCK_TICK)) == -1) break; +#endif break; case CB_CODE_CPR_RESUME: @@ -360,3 +367,74 @@ callb_unlock_table(void) cv_broadcast(>ct_busy_cv); mutex_exit(>ct_lock); } + +#ifdef illumos +/* + * Return a boolean value indicating whether a particular kernel thread is + * stopped in accordance with the cpr callback protocol. If returning + * false, also return a pointer to the thread name via the 2nd argument. + */ +boolean_t +callb_is_stopped(kthread_id_t tp, caddr_t *thread_name) +{ + callb_t *cp; + boolean_t ret_val; + + mutex_enter(>ct_lock); + + for (cp = ct->ct_first_cb[CB_CL_CPR_DAEMON]; + cp != NULL && tp != cp->c_thread; cp = cp->c_next) + ; + + ret_val = (cp != NULL); + if (ret_val) { + /* + * We found the thread in the callback table and have + * provisionally set the return value to true. Now + * see if it is marked "safe" and is sleeping or stopped. + */ + callb_cpr_t *ccp = (callb_cpr_t *)cp->c_arg; + + *thread_name = cp->c_name; /* in case not stopped */ + mutex_enter(ccp->cc_lockp); + + if (ccp->cc_events & CALLB_CPR_SAFE) { + int retry; + + mutex_exit(ccp->cc_lockp); + for (retry = 0; retry < CALLB_MAX_RETRY; retry++) { +thread_lock(tp); +if (tp->t_state & (TS_SLEEP | TS_STOPPED)) { + thread_unlock(tp); + break; +} +thread_unlock(tp); +delay(CALLB_THREAD_DELAY); + } + ret_val = retry < CALLB_MAX_RETRY; + } else { + ret_val = + (ccp->cc_events & CALLB_CPR_ALWAYS_SAFE) != 0; + mutex_exit(ccp->cc_lockp); + } + } else { + /* + * Thread not found in callback table. Make the best + * attempt to identify the thread in the error message. + */ + ulong_t offset; + char *sym =
CVS commit: src/external/cddl/osnet/dist/cmd/stat/common
Module Name:src Committed By: hannken Date: Thu Jun 6 15:59:23 UTC 2019 Removed Files: src/external/cddl/osnet/dist/cmd/stat/common: timestamp.c Log Message: Remove "dist/cmd/stat" containing only one left over and unneeded file. To generate a diff of this commit: cvs rdiff -u -r1.1.1.1 -r0 \ src/external/cddl/osnet/dist/cmd/stat/common/timestamp.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/cmd/stat/common
Module Name:src Committed By: hannken Date: Thu Jun 6 15:59:23 UTC 2019 Removed Files: src/external/cddl/osnet/dist/cmd/stat/common: timestamp.c Log Message: Remove "dist/cmd/stat" containing only one left over and unneeded file. To generate a diff of this commit: cvs rdiff -u -r1.1.1.1 -r0 \ src/external/cddl/osnet/dist/cmd/stat/common/timestamp.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet
Module Name:src Committed By: hannken Date: Thu Jun 6 14:58:51 UTC 2019 Added Files: src/external/cddl/osnet/sys: libshare.h src/external/cddl/osnet/sys/sys: systeminfo.h Removed Files: src/external/cddl/osnet/dist/lib/libshare/common: libshare.h src/external/cddl/osnet/dist/uts/common/sys: systeminfo.h taskq_impl.h Log Message: Handle files not present upstream: dist/lib/libshare/common/libshare.h -> sys/libshare.h dist/uts/common/sys/systeminfo.h-> sys/sys/systeminfo.h dist/uts/common/sys/taskq_impl.h-> TRASH No functional change intended. To generate a diff of this commit: cvs rdiff -u -r1.1.1.3 -r0 \ src/external/cddl/osnet/dist/lib/libshare/common/libshare.h cvs rdiff -u -r1.1.1.3 -r0 \ src/external/cddl/osnet/dist/uts/common/sys/systeminfo.h \ src/external/cddl/osnet/dist/uts/common/sys/taskq_impl.h cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/sys/libshare.h cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/sys/sys/systeminfo.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Added files: Index: src/external/cddl/osnet/sys/libshare.h diff -u /dev/null src/external/cddl/osnet/sys/libshare.h:1.1 --- /dev/null Thu Jun 6 14:58:51 2019 +++ src/external/cddl/osnet/sys/libshare.h Thu Jun 6 14:58:50 2019 @@ -0,0 +1,36 @@ +/*- + * Copyright (c) 2007 Pawel Jakub Dawidek + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _OPENSOLARIS_LIBSHARE_H_ +#define _OPENSOLARIS_LIBSHARE_H_ + +#define SA_OK 0 + +#define SA_INIT_CONTROL_API 0 + +#endif /* !_OPENSOLARIS_LIBSHARE_H_ */ Index: src/external/cddl/osnet/sys/sys/systeminfo.h diff -u /dev/null src/external/cddl/osnet/sys/sys/systeminfo.h:1.1 --- /dev/null Thu Jun 6 14:58:51 2019 +++ src/external/cddl/osnet/sys/sys/systeminfo.h Thu Jun 6 14:58:51 2019 @@ -0,0 +1,6 @@ +#ifndef _SYS_SYSTEMINFO_H_ +#define _SYS_SYSTEMINFO_H_ + +#define HW_HOSTID_LEN 11 + +#endif /* !_SYS_SYSTEMINFO_H_ */
CVS commit: src/external/cddl/osnet
Module Name:src Committed By: hannken Date: Thu Jun 6 14:58:51 UTC 2019 Added Files: src/external/cddl/osnet/sys: libshare.h src/external/cddl/osnet/sys/sys: systeminfo.h Removed Files: src/external/cddl/osnet/dist/lib/libshare/common: libshare.h src/external/cddl/osnet/dist/uts/common/sys: systeminfo.h taskq_impl.h Log Message: Handle files not present upstream: dist/lib/libshare/common/libshare.h -> sys/libshare.h dist/uts/common/sys/systeminfo.h-> sys/sys/systeminfo.h dist/uts/common/sys/taskq_impl.h-> TRASH No functional change intended. To generate a diff of this commit: cvs rdiff -u -r1.1.1.3 -r0 \ src/external/cddl/osnet/dist/lib/libshare/common/libshare.h cvs rdiff -u -r1.1.1.3 -r0 \ src/external/cddl/osnet/dist/uts/common/sys/systeminfo.h \ src/external/cddl/osnet/dist/uts/common/sys/taskq_impl.h cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/sys/libshare.h cvs rdiff -u -r0 -r1.1 src/external/cddl/osnet/sys/sys/systeminfo.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src
Module Name:src Committed By: hannken Date: Wed Jun 5 16:28:07 UTC 2019 Modified Files: src/sys/modules/solaris: Makefile.solmod Removed Files: src/external/cddl/osnet/dist/uts/common/rpc: types.h xdr.c xdr.h xdr_array.c xdr_mem.c Log Message: Switch module solaris to native XDR. To generate a diff of this commit: cvs rdiff -u -r1.3 -r0 src/external/cddl/osnet/dist/uts/common/rpc/types.h cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/dist/uts/common/rpc/xdr.c \ src/external/cddl/osnet/dist/uts/common/rpc/xdr_mem.c cvs rdiff -u -r1.5 -r0 src/external/cddl/osnet/dist/uts/common/rpc/xdr.h cvs rdiff -u -r1.1.1.1 -r0 \ src/external/cddl/osnet/dist/uts/common/rpc/xdr_array.c cvs rdiff -u -r1.6 -r1.7 src/sys/modules/solaris/Makefile.solmod Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src
Module Name:src Committed By: hannken Date: Wed Jun 5 16:28:07 UTC 2019 Modified Files: src/sys/modules/solaris: Makefile.solmod Removed Files: src/external/cddl/osnet/dist/uts/common/rpc: types.h xdr.c xdr.h xdr_array.c xdr_mem.c Log Message: Switch module solaris to native XDR. To generate a diff of this commit: cvs rdiff -u -r1.3 -r0 src/external/cddl/osnet/dist/uts/common/rpc/types.h cvs rdiff -u -r1.2 -r0 src/external/cddl/osnet/dist/uts/common/rpc/xdr.c \ src/external/cddl/osnet/dist/uts/common/rpc/xdr_mem.c cvs rdiff -u -r1.5 -r0 src/external/cddl/osnet/dist/uts/common/rpc/xdr.h cvs rdiff -u -r1.1.1.1 -r0 \ src/external/cddl/osnet/dist/uts/common/rpc/xdr_array.c cvs rdiff -u -r1.6 -r1.7 src/sys/modules/solaris/Makefile.solmod Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/modules/solaris/Makefile.solmod diff -u src/sys/modules/solaris/Makefile.solmod:1.6 src/sys/modules/solaris/Makefile.solmod:1.7 --- src/sys/modules/solaris/Makefile.solmod:1.6 Sun Feb 17 04:05:58 2019 +++ src/sys/modules/solaris/Makefile.solmod Wed Jun 5 16:28:07 2019 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.solmod,v 1.6 2019/02/17 04:05:58 rin Exp $ +# $NetBSD: Makefile.solmod,v 1.7 2019/06/05 16:28:07 hannken Exp $ ZFSDIR= ${S}/../external/cddl/osnet @@ -22,7 +22,7 @@ SRCS+= fm.c SRCS+= list.c SRCS+= nvpair_alloc_system.c -.PATH: ${ZFSDIR}/dist/uts/common/rpc +.PATH: ${NETBSDSRCDIR}/common/lib/libc/rpc SRCS+= xdr.c SRCS+= xdr_array.c
CVS commit: src/common
Module Name:src Committed By: hannken Date: Wed Jun 5 16:25:43 UTC 2019 Modified Files: src/common/include/rpc: types.h src/common/lib/libc/rpc: xdr.c xdr_array.c xdr_mem.c Log Message: Make XDR usable from kernel or module. No user visible changes intended. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/common/include/rpc/types.h cvs rdiff -u -r1.1 -r1.2 src/common/lib/libc/rpc/xdr.c \ src/common/lib/libc/rpc/xdr_array.c src/common/lib/libc/rpc/xdr_mem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/common/include/rpc/types.h diff -u src/common/include/rpc/types.h:1.1 src/common/include/rpc/types.h:1.2 --- src/common/include/rpc/types.h:1.1 Tue Jun 4 15:07:55 2019 +++ src/common/include/rpc/types.h Wed Jun 5 16:25:43 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: types.h,v 1.1 2019/06/04 15:07:55 hannken Exp $ */ +/* $NetBSD: types.h,v 1.2 2019/06/05 16:25:43 hannken Exp $ */ /* * Sun RPC is a product of Sun Microsystems, Inc. and is provided for @@ -62,6 +62,19 @@ typedef int32_t rpc_inline_t; # define NULL 0 #endif +#if defined(_KERNEL) || defined(_STANDALONE) + +#define warn(msg,...) /**/ + +typedef __caddr_t caddr_t; + +#include + +#define mem_alloc(bsize) kmem_alloc(bsize, KM_SLEEP) +#define mem_free(ptr, bsize) kmem_free(ptr, bsize) + +#else /* _KERNEL || _STANDALONE */ + #define mem_alloc(bsize) calloc((size_t)1, bsize) #define mem_free(ptr, bsize) free(ptr) @@ -104,4 +117,6 @@ struct __rpc_sockinfo { int si_alen; }; +#endif /* _KERNEL || _STANDALONE */ + #endif /* !_RPC_TYPES_H_ */ Index: src/common/lib/libc/rpc/xdr.c diff -u src/common/lib/libc/rpc/xdr.c:1.1 src/common/lib/libc/rpc/xdr.c:1.2 --- src/common/lib/libc/rpc/xdr.c:1.1 Tue Jun 4 15:07:55 2019 +++ src/common/lib/libc/rpc/xdr.c Wed Jun 5 16:25:43 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: xdr.c,v 1.1 2019/06/04 15:07:55 hannken Exp $ */ +/* $NetBSD: xdr.c,v 1.2 2019/06/05 16:25:43 hannken Exp $ */ /* * Copyright (c) 2010, Oracle America, Inc. @@ -37,7 +37,7 @@ static char *sccsid = "@(#)xdr.c 1.35 87/08/12"; static char *sccsid = "@(#)xdr.c 2.1 88/07/29 4.0 RPCSRC"; #else -__RCSID("$NetBSD: xdr.c,v 1.1 2019/06/04 15:07:55 hannken Exp $"); +__RCSID("$NetBSD: xdr.c,v 1.2 2019/06/05 16:25:43 hannken Exp $"); #endif #endif @@ -51,6 +51,14 @@ __RCSID("$NetBSD: xdr.c,v 1.1 2019/06/04 * xdr. */ +#if defined(_KERNEL) || defined(_STANDALONE) + +#include +#include +#include + +#else /* _KERNEL || _STANDALONE */ + #include "namespace.h" #include @@ -95,6 +103,8 @@ __weak_alias(xdr_void,_xdr_void) __weak_alias(xdr_wrapstring,_xdr_wrapstring) #endif +#endif /* _KERNEL || _STANDALONE */ + /* * constants specific to the xdr "protocol" */ @@ -633,7 +643,7 @@ xdr_bytes(XDR *xdrs, char **cpp, u_int * ret = xdr_opaque(xdrs, sp, nodesize); if ((xdrs->x_op == XDR_DECODE) && (ret == FALSE)) { if (allocated == TRUE) { -free(sp); +mem_free(sp, nodesize); *cpp = NULL; } } @@ -793,7 +803,7 @@ xdr_string(XDR *xdrs, char **cpp, u_int ret = xdr_opaque(xdrs, sp, size); if ((xdrs->x_op == XDR_DECODE) && (ret == FALSE)) { if (allocated == TRUE) { -free(sp); +mem_free(sp, nodesize); *cpp = NULL; } } @@ -808,6 +818,8 @@ xdr_string(XDR *xdrs, char **cpp, u_int return (FALSE); } +#if !defined(_KERNEL) && !defined(_STANDALONE) + /* * Wrapper for xdr_string that can be called directly from * routines like clnt_call @@ -822,6 +834,8 @@ xdr_wrapstring(XDR *xdrs, char **cpp) return xdr_string(xdrs, cpp, RPC_MAXDATASIZE); } +#endif /* !_KERNEL && !_STANDALONE */ + /* * NOTE: xdr_hyper(), xdr_u_hyper(), xdr_longlong_t(), and xdr_u_longlong_t() * are in the "non-portable" section because they require that a `long long' Index: src/common/lib/libc/rpc/xdr_array.c diff -u src/common/lib/libc/rpc/xdr_array.c:1.1 src/common/lib/libc/rpc/xdr_array.c:1.2 --- src/common/lib/libc/rpc/xdr_array.c:1.1 Tue Jun 4 15:07:55 2019 +++ src/common/lib/libc/rpc/xdr_array.c Wed Jun 5 16:25:43 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: xdr_array.c,v 1.1 2019/06/04 15:07:55 hannken Exp $ */ +/* $NetBSD: xdr_array.c,v 1.2 2019/06/05 16:25:43 hannken Exp $ */ /* * Copyright (c) 2010, Oracle America, Inc. @@ -37,7 +37,7 @@ static char *sccsid = "@(#)xdr_array.c 1.10 87/08/11 Copyr 1984 Sun Micro"; static char *sccsid = "@(#)xdr_array.c 2.1 88/07/29 4.0 RPCSRC"; #else -__RCSID("$NetBSD: xdr_array.c,v 1.1 2019/06/04 15:07:55 hannken Exp $"); +__RCSID("$NetBSD: xdr_array.c,v 1.2 2019/06/05 16:25:43 hannken Exp $"); #endif #endif @@ -50,6 +50,15 @@ __RCSID("$NetBSD: xdr_array.c,v 1.1 2019 * arrays. See xdr.h for more info on the interface to xdr. */ +#if defined(_KERNEL) || defined(_STANDALONE) + +#include +#include +#include +#include + +#else /* _KERNEL || _STANDALONE */ + #include "namespace.h" #include @@ -66,6
CVS commit: src/common
Module Name:src Committed By: hannken Date: Wed Jun 5 16:25:43 UTC 2019 Modified Files: src/common/include/rpc: types.h src/common/lib/libc/rpc: xdr.c xdr_array.c xdr_mem.c Log Message: Make XDR usable from kernel or module. No user visible changes intended. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/common/include/rpc/types.h cvs rdiff -u -r1.1 -r1.2 src/common/lib/libc/rpc/xdr.c \ src/common/lib/libc/rpc/xdr_array.c src/common/lib/libc/rpc/xdr_mem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src
Module Name:src Committed By: hannken Date: Tue Jun 4 15:07:55 UTC 2019 Modified Files: src/common/lib/libc: Makefile.inc src/include: Makefile src/include/rpc: Makefile Added Files: src/common/include/rpc: Makefile types.h xdr.h src/common/lib/libc/rpc: xdr.c xdr_array.c xdr_mem.c Removed Files: src/include/rpc: types.h xdr.h src/lib/libc/rpc: xdr.c xdr_array.c xdr_mem.c Log Message: Move the basic part of XDR to common/include/rpc and common/lib/libc/rpc. No functional change intended. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/common/include/rpc/Makefile \ src/common/include/rpc/types.h src/common/include/rpc/xdr.h cvs rdiff -u -r1.18 -r1.19 src/common/lib/libc/Makefile.inc cvs rdiff -u -r0 -r1.1 src/common/lib/libc/rpc/xdr.c \ src/common/lib/libc/rpc/xdr_array.c src/common/lib/libc/rpc/xdr_mem.c cvs rdiff -u -r1.145 -r1.146 src/include/Makefile cvs rdiff -u -r1.12 -r1.13 src/include/rpc/Makefile cvs rdiff -u -r1.15 -r0 src/include/rpc/types.h cvs rdiff -u -r1.31 -r0 src/include/rpc/xdr.h cvs rdiff -u -r1.34 -r0 src/lib/libc/rpc/xdr.c cvs rdiff -u -r1.19 -r0 src/lib/libc/rpc/xdr_array.c cvs rdiff -u -r1.20 -r0 src/lib/libc/rpc/xdr_mem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src
Module Name:src Committed By: hannken Date: Tue Jun 4 15:07:55 UTC 2019 Modified Files: src/common/lib/libc: Makefile.inc src/include: Makefile src/include/rpc: Makefile Added Files: src/common/include/rpc: Makefile types.h xdr.h src/common/lib/libc/rpc: xdr.c xdr_array.c xdr_mem.c Removed Files: src/include/rpc: types.h xdr.h src/lib/libc/rpc: xdr.c xdr_array.c xdr_mem.c Log Message: Move the basic part of XDR to common/include/rpc and common/lib/libc/rpc. No functional change intended. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/common/include/rpc/Makefile \ src/common/include/rpc/types.h src/common/include/rpc/xdr.h cvs rdiff -u -r1.18 -r1.19 src/common/lib/libc/Makefile.inc cvs rdiff -u -r0 -r1.1 src/common/lib/libc/rpc/xdr.c \ src/common/lib/libc/rpc/xdr_array.c src/common/lib/libc/rpc/xdr_mem.c cvs rdiff -u -r1.145 -r1.146 src/include/Makefile cvs rdiff -u -r1.12 -r1.13 src/include/rpc/Makefile cvs rdiff -u -r1.15 -r0 src/include/rpc/types.h cvs rdiff -u -r1.31 -r0 src/include/rpc/xdr.h cvs rdiff -u -r1.34 -r0 src/lib/libc/rpc/xdr.c cvs rdiff -u -r1.19 -r0 src/lib/libc/rpc/xdr_array.c cvs rdiff -u -r1.20 -r0 src/lib/libc/rpc/xdr_mem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/common/lib/libc/Makefile.inc diff -u src/common/lib/libc/Makefile.inc:1.18 src/common/lib/libc/Makefile.inc:1.19 --- src/common/lib/libc/Makefile.inc:1.18 Fri Aug 3 03:35:17 2018 +++ src/common/lib/libc/Makefile.inc Tue Jun 4 15:07:55 2019 @@ -1,9 +1,9 @@ -# $NetBSD: Makefile.inc,v 1.18 2018/08/03 03:35:17 kamil Exp $ +# $NetBSD: Makefile.inc,v 1.19 2019/06/04 15:07:55 hannken Exp $ .include COMMON_DIR:=${.PARSEDIR} -COMMON_CODEDIRS=atomic gen gmon inet md misc net stdlib string sys +COMMON_CODEDIRS=atomic gen gmon inet md misc net rpc stdlib string sys COMMON_CODEDIRS+=hash/sha1 hash/sha2 hash/sha3 hash/rmd160 hash/murmurhash .if defined(COMMON_MACHINE_ARCH) && !empty(COMMON_MACHINE_ARCH) && \ Index: src/include/Makefile diff -u src/include/Makefile:1.145 src/include/Makefile:1.146 --- src/include/Makefile:1.145 Wed Apr 24 10:26:08 2019 +++ src/include/Makefile Tue Jun 4 15:07:55 2019 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.145 2019/04/24 10:26:08 roy Exp $ +# $NetBSD: Makefile,v 1.146 2019/06/04 15:07:55 hannken Exp $ # @(#)Makefile 8.2 (Berkeley) 1/4/94 # Doing a make includes builds /usr/include @@ -47,6 +47,7 @@ INCSDIR= /usr/include SUBDIR= rpc SUBDIR+= ../common/include/prop SUBDIR+= ../common/include/ppath +SUBDIR+= ../common/include/rpc .include .include Index: src/include/rpc/Makefile diff -u src/include/rpc/Makefile:1.12 src/include/rpc/Makefile:1.13 --- src/include/rpc/Makefile:1.12 Sat Jan 11 13:28:43 2003 +++ src/include/rpc/Makefile Tue Jun 4 15:07:55 2019 @@ -1,10 +1,10 @@ -# $NetBSD: Makefile,v 1.12 2003/01/11 13:28:43 tron Exp $ +# $NetBSD: Makefile,v 1.13 2019/06/04 15:07:55 hannken Exp $ # INCS= auth.h auth_unix.h clnt.h clnt_soc.h nettype.h \ pmap_clnt.h pmap_prot.h pmap_rmt.h raw.h rpc.h \ rpc_com.h rpc_msg.h rpcb_clnt.h rpcb_prot.h rpcent.h \ - svc.h svc_auth.h svc_soc.h types.h xdr.h + svc.h svc_auth.h svc_soc.h RPC_INCS= rpcb_prot.h INCSDIR= /usr/include/rpc Added files: Index: src/common/include/rpc/Makefile diff -u /dev/null src/common/include/rpc/Makefile:1.1 --- /dev/null Tue Jun 4 15:07:55 2019 +++ src/common/include/rpc/Makefile Tue Jun 4 15:07:55 2019 @@ -0,0 +1,8 @@ +# $NetBSD: Makefile,v 1.1 2019/06/04 15:07:55 hannken Exp $ +# + +INCS= types.h xdr.h + +INCSDIR= /usr/include/rpc + +.include Index: src/common/include/rpc/types.h diff -u /dev/null src/common/include/rpc/types.h:1.1 --- /dev/null Tue Jun 4 15:07:55 2019 +++ src/common/include/rpc/types.h Tue Jun 4 15:07:55 2019 @@ -0,0 +1,107 @@ +/* $NetBSD: types.h,v 1.1 2019/06/04 15:07:55 hannken Exp $ */ + +/* + * Sun RPC is a product of Sun Microsystems, Inc. and is provided for + * unrestricted use provided that this legend is included on all tape + * media and as a part of the software program in whole or part. Users + * may copy or modify Sun RPC without charge, but are not authorized + * to license or distribute it to anyone else except as part of a product or + * program developed by the user. + * + * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE + * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR + * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * + * Sun RPC is provided with no support and without any obligation on the + * part of Sun Microsystems, Inc. to assist in its use, correction, + * modification or enhancement. + * + * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE + * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC + * OR ANY PART THEREOF. + * + * In no event will
CVS commit: src/external/cddl/osnet
Module Name:src Committed By: hannken Date: Tue Jun 4 08:45:18 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/rpc: xdr.h src/external/cddl/osnet/lib/libnvpair: Makefile Log Message: Use native XDR for libnvpair in userland. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dist/uts/common/rpc/xdr.h cvs rdiff -u -r1.9 -r1.10 src/external/cddl/osnet/lib/libnvpair/Makefile Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet
Module Name:src Committed By: hannken Date: Tue Jun 4 08:45:18 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/rpc: xdr.h src/external/cddl/osnet/lib/libnvpair: Makefile Log Message: Use native XDR for libnvpair in userland. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dist/uts/common/rpc/xdr.h cvs rdiff -u -r1.9 -r1.10 src/external/cddl/osnet/lib/libnvpair/Makefile Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/rpc/xdr.h diff -u src/external/cddl/osnet/dist/uts/common/rpc/xdr.h:1.4 src/external/cddl/osnet/dist/uts/common/rpc/xdr.h:1.5 --- src/external/cddl/osnet/dist/uts/common/rpc/xdr.h:1.4 Mon May 28 21:05:07 2018 +++ src/external/cddl/osnet/dist/uts/common/rpc/xdr.h Tue Jun 4 08:45:17 2019 @@ -34,6 +34,7 @@ * */ +#if defined(_KERNEL) || defined(_STANDALONE) #ifndef _RPC_XDR_H #define _RPC_XDR_H @@ -646,3 +647,6 @@ extern bool_t xdr_replymsg_hdr(XDR *, st #endif #endif /* !_RPC_XDR_H */ +#else /* defined(_KERNEL) || defined(_STANDALONE) */ +#include_next +#endif /* defined(_KERNEL) || defined(_STANDALONE) */ Index: src/external/cddl/osnet/lib/libnvpair/Makefile diff -u src/external/cddl/osnet/lib/libnvpair/Makefile:1.9 src/external/cddl/osnet/lib/libnvpair/Makefile:1.10 --- src/external/cddl/osnet/lib/libnvpair/Makefile:1.9 Mon May 28 21:05:09 2018 +++ src/external/cddl/osnet/lib/libnvpair/Makefile Tue Jun 4 08:45:17 2019 @@ -1,15 +1,13 @@ -# $NetBSD: Makefile,v 1.9 2018/05/28 21:05:09 chs Exp $ +# $NetBSD: Makefile,v 1.10 2019/06/04 08:45:17 hannken Exp $ .include .PATH: ${.CURDIR}/../../dist/lib/libnvpair .PATH: ${.CURDIR}/../../dist/common/nvpair -.PATH: ${.CURDIR}/../../dist/uts/common/rpc CPPFLAGS+= -I${OSNETDIR}/sys \ -I${OPENSOLARIS_USR_DISTDIR}/head \ - -I${OPENSOLARIS_SYS_DISTDIR}/common \ - -I${OPENSOLARIS_SYS_DISTDIR}/uts/common + -I${OPENSOLARIS_SYS_DISTDIR}/common CPPFLAGS+= -Wall \ -Wno-unknown-pragmas \ @@ -21,9 +19,6 @@ CPPFLAGS+= -Wall \ LIB= nvpair SRCS= libnvpair.c nvpair_alloc_system.c nvpair_alloc_fixed.c nvpair.c fnvpair.c nvpair_json.c -SRCS+= xdr.c -SRCS+= xdr_array.c -SRCS+= xdr_mem.c .include "../../Makefile.zfs" .include
CVS commit: src
Module Name:src Committed By: hannken Date: Tue Jun 4 08:44:08 UTC 2019 Modified Files: src/distrib/sets/lists/base: shl.mi src/distrib/sets/lists/debug: shl.mi src/include/rpc: xdr.h src/lib/libc: shlib_version src/lib/libc/rpc: xdr_mem.c Log Message: Implement xdrmem_control(), used as xdr_control(xdr, XDR_GET_BYTES_AVAIL ... and bump libc minor number. Final goal is to remove the unmaintained XDR implementation at external/cddl/osnet/dist/uts/common/rpc. To generate a diff of this commit: cvs rdiff -u -r1.864 -r1.865 src/distrib/sets/lists/base/shl.mi cvs rdiff -u -r1.223 -r1.224 src/distrib/sets/lists/debug/shl.mi cvs rdiff -u -r1.30 -r1.31 src/include/rpc/xdr.h cvs rdiff -u -r1.283 -r1.284 src/lib/libc/shlib_version cvs rdiff -u -r1.19 -r1.20 src/lib/libc/rpc/xdr_mem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src
Module Name:src Committed By: hannken Date: Tue Jun 4 08:44:08 UTC 2019 Modified Files: src/distrib/sets/lists/base: shl.mi src/distrib/sets/lists/debug: shl.mi src/include/rpc: xdr.h src/lib/libc: shlib_version src/lib/libc/rpc: xdr_mem.c Log Message: Implement xdrmem_control(), used as xdr_control(xdr, XDR_GET_BYTES_AVAIL ... and bump libc minor number. Final goal is to remove the unmaintained XDR implementation at external/cddl/osnet/dist/uts/common/rpc. To generate a diff of this commit: cvs rdiff -u -r1.864 -r1.865 src/distrib/sets/lists/base/shl.mi cvs rdiff -u -r1.223 -r1.224 src/distrib/sets/lists/debug/shl.mi cvs rdiff -u -r1.30 -r1.31 src/include/rpc/xdr.h cvs rdiff -u -r1.283 -r1.284 src/lib/libc/shlib_version cvs rdiff -u -r1.19 -r1.20 src/lib/libc/rpc/xdr_mem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/distrib/sets/lists/base/shl.mi diff -u src/distrib/sets/lists/base/shl.mi:1.864 src/distrib/sets/lists/base/shl.mi:1.865 --- src/distrib/sets/lists/base/shl.mi:1.864 Sun Apr 28 00:03:46 2019 +++ src/distrib/sets/lists/base/shl.mi Tue Jun 4 08:44:08 2019 @@ -1,4 +1,4 @@ -# $NetBSD: shl.mi,v 1.864 2019/04/28 00:03:46 christos Exp $ +# $NetBSD: shl.mi,v 1.865 2019/06/04 08:44:08 hannken Exp $ # # Note: Don't delete entries from here - mark them as "obsolete" instead, # unless otherwise stated below. @@ -18,7 +18,7 @@ ./lib/libblacklist.so.0.0 base-sys-shlib dynamicroot ./lib/libc.so base-sys-shlib dynamicroot ./lib/libc.so.12base-sys-shlib dynamicroot -./lib/libc.so.12.212base-sys-shlib dynamicroot +./lib/libc.so.12.213base-sys-shlib dynamicroot ./lib/libcrypt.sobase-sys-shlib dynamicroot ./lib/libcrypt.so.1base-sys-shlib dynamicroot ./lib/libcrypt.so.1.0base-sys-shlib dynamicroot @@ -221,7 +221,7 @@ ./usr/lib/libc++.so.1.0base-sys-shlib compatfile,libcxx ./usr/lib/libc.sobase-sys-shlib compatfile ./usr/lib/libc.so.12base-sys-shlib compatfile -./usr/lib/libc.so.12.212 base-sys-shlib compatfile +./usr/lib/libc.so.12.213 base-sys-shlib compatfile ./usr/lib/libcdk.sobase-obsolete compatfile,obsolete ./usr/lib/libcom_err.sobase-krb5-shlib compatfile,kerberos ./usr/lib/libcom_err.so.8 base-krb5-shlib compatfile,kerberos Index: src/distrib/sets/lists/debug/shl.mi diff -u src/distrib/sets/lists/debug/shl.mi:1.223 src/distrib/sets/lists/debug/shl.mi:1.224 --- src/distrib/sets/lists/debug/shl.mi:1.223 Sun Apr 28 00:03:46 2019 +++ src/distrib/sets/lists/debug/shl.mi Tue Jun 4 08:44:08 2019 @@ -1,8 +1,8 @@ -# $NetBSD: shl.mi,v 1.223 2019/04/28 00:03:46 christos Exp $ +# $NetBSD: shl.mi,v 1.224 2019/06/04 08:44:08 hannken Exp $ ./usr/lib/libbfd_g.a comp-c-debuglib debuglib,compatfile,binutils ./usr/libdata/debug/lib base-sys-usr debug,dynamicroot,compatdir ./usr/libdata/debug/lib/libblacklist.so.0.0.debug comp-sys-debug debug,dynamicroot -./usr/libdata/debug/lib/libc.so.12.212.debug comp-sys-debug debug,dynamicroot +./usr/libdata/debug/lib/libc.so.12.213.debug comp-sys-debug debug,dynamicroot ./usr/libdata/debug/lib/libcrypt.so.1.0.debug comp-sys-debug debug,dynamicroot ./usr/libdata/debug/lib/libcrypto.so.12.0.debug comp-sys-debug debug,dynamicroot,openssl=10 ./usr/libdata/debug/lib/libcrypto.so.14.0.debug comp-sys-debug debug,dynamicroot,openssl=11 @@ -71,7 +71,7 @@ ./usr/libdata/debug/usr/lib/libbsdmalloc.so.0.0.debug comp-sys-debug debug,compatfile ./usr/libdata/debug/usr/lib/libbz2.so.1.1.debug comp-sys-debug debug,compatfile ./usr/libdata/debug/usr/lib/libc++.so.1.0.debug comp-sys-debug debug,compatfile,libcxx -./usr/libdata/debug/usr/lib/libc.so.12.212.debug comp-sys-debug debug,compatfile +./usr/libdata/debug/usr/lib/libc.so.12.213.debug comp-sys-debug debug,compatfile ./usr/libdata/debug/usr/lib/libcom_err.so.8.0.debug comp-krb5-debug debug,compatfile,kerberos ./usr/libdata/debug/usr/lib/libcrypt.so.1.0.debug comp-sys-debug debug,compatfile ./usr/libdata/debug/usr/lib/libcrypto.so.12.0.debug comp-crypto-debug debug,compatfile,openssl=10 Index: src/include/rpc/xdr.h diff -u src/include/rpc/xdr.h:1.30 src/include/rpc/xdr.h:1.31 --- src/include/rpc/xdr.h:1.30 Wed Aug 16 08:35:48 2017 +++ src/include/rpc/xdr.h Tue Jun 4 08:44:08 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: xdr.h,v 1.30 2017/08/16 08:35:48 christos Exp $ */ +/* $NetBSD: xdr.h,v 1.31 2019/06/04 08:44:08 hannken Exp $ */ /* * Sun RPC is a product of Sun Microsystems, Inc. and is provided for @@ -209,8 +209,8 @@ xdr_putint32(XDR *xdrs, int32_t *ip) (*(xdrs)->x_ops->x_destroy)(xdrs) #define XDR_CONTROL(xdrs, req, op) \ - if ((xdrs)->x_ops->x_control) \ - (*(xdrs)->x_ops->x_control)(xdrs, req, op) + (((xdrs)->x_ops->x_control == NULL) ? (FALSE) : \ + (*(xdrs)->x_ops->x_control)(xdrs, req, op)) #define xdr_control(xdrs, req, op) XDR_CONTROL(xdrs,
CVS commit: src/distrib/sets/lists/tests
Module Name:src Committed By: hannken Date: Sun May 26 20:01:07 UTC 2019 Modified Files: src/distrib/sets/lists/tests: mi Log Message: Add entries for the recent tests/lib/libcurses commit. To generate a diff of this commit: cvs rdiff -u -r1.812 -r1.813 src/distrib/sets/lists/tests/mi Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/distrib/sets/lists/tests
Module Name:src Committed By: hannken Date: Sun May 26 20:01:07 UTC 2019 Modified Files: src/distrib/sets/lists/tests: mi Log Message: Add entries for the recent tests/lib/libcurses commit. To generate a diff of this commit: cvs rdiff -u -r1.812 -r1.813 src/distrib/sets/lists/tests/mi Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/distrib/sets/lists/tests/mi diff -u src/distrib/sets/lists/tests/mi:1.812 src/distrib/sets/lists/tests/mi:1.813 --- src/distrib/sets/lists/tests/mi:1.812 Fri Apr 26 08:52:16 2019 +++ src/distrib/sets/lists/tests/mi Sun May 26 20:01:07 2019 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.812 2019/04/26 08:52:16 maya Exp $ +# $NetBSD: mi,v 1.813 2019/05/26 20:01:07 hannken Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -2911,8 +2911,11 @@ ./usr/tests/lib/libcurses/Atffile tests-lib-tests compattestfile,atf ./usr/tests/lib/libcurses/Kyuafile tests-lib-tests compattestfile,atf,kyua ./usr/tests/lib/libcurses/check_files tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/add_wch1.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/add_wch2.chk tests-lib-tests compattestfile,atf ./usr/tests/lib/libcurses/check_files/addch.chk tests-lib-tests compattestfile,atf ./usr/tests/lib/libcurses/check_files/addchstr.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/addchstr2.chk tests-lib-tests compattestfile,atf ./usr/tests/lib/libcurses/check_files/addstr.chk tests-lib-tests compattestfile,atf ./usr/tests/lib/libcurses/check_files/attributes.chk tests-lib-tests compattestfile,atf ./usr/tests/lib/libcurses/check_files/background1.chk tests-lib-tests compattestfile,atf @@ -2921,6 +2924,7 @@ ./usr/tests/lib/libcurses/check_files/background4.chk tests-lib-tests compattestfile,atf ./usr/tests/lib/libcurses/check_files/background5.chk tests-lib-tests compattestfile,atf ./usr/tests/lib/libcurses/check_files/bell.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/bkgdset1.chk tests-lib-tests compattestfile,atf ./usr/tests/lib/libcurses/check_files/box_standout.chk tests-lib-tests compattestfile,atf ./usr/tests/lib/libcurses/check_files/chgat1.chk tests-lib-tests compattestfile,atf ./usr/tests/lib/libcurses/check_files/chgat2.chk tests-lib-tests compattestfile,atf @@ -2959,9 +2963,72 @@ ./usr/tests/lib/libcurses/check_files/curs_set2.chk tests-lib-tests compattestfile,atf ./usr/tests/lib/libcurses/check_files/curs_set3.chk tests-lib-tests compattestfile,atf ./usr/tests/lib/libcurses/check_files/curses_start.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/delay_output.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/delch1.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/delch2.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/delch3.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/delch4.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/delch5.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/deleteln1.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/deleteln2.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/deleteln3.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/deleteln4.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/deleteln5.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/deleteln6.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/delwin1.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/delwin2.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/derwin1.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/derwin2.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/doupdate.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/dupwin1.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/dupwin2.chk tests-lib-tests compattestfile,atf ./usr/tests/lib/libcurses/check_files/fill.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/fill_screen_numbers.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/fill_window_numbers.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/flash.chk tests-lib-tests compattestfile,atf +./usr/tests/lib/libcurses/check_files/hline.chk tests-lib-tests compattestfile,atf ./usr/tests/lib/libcurses/check_files/home.chk tests-lib-tests compattestfile,atf
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Sun May 26 10:22:59 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: vdev_disk.c Log Message: upport wedges as vdevs, use DIOCGWEDGEINFO before DIOCGPARTINFO. PR kern/54219 zpool create pool dk5 causes kernel panic To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Sun May 26 10:22:59 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: vdev_disk.c Log Message: upport wedges as vdevs, use DIOCGWEDGEINFO before DIOCGPARTINFO. PR kern/54219 zpool create pool dk5 causes kernel panic To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.8 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.9 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.8 Mon Sep 3 16:29:22 2018 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c Sun May 26 10:22:59 2019 @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -146,6 +147,8 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi spa_t *spa = vd->vdev_spa; vdev_disk_t *dvd; vnode_t *vp; + struct dkwedge_info dkw; + struct disk *pdk; int error, cmd; struct partinfo pinfo; @@ -235,9 +238,20 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi skip_open: /* * Determine the actual size of the device. - * XXXNETBSD wedges. + * Try wedge info first as it supports larger disks. */ - error = VOP_IOCTL(vp, DIOCGPARTINFO, , FREAD|FWRITE, kcred); + error = VOP_IOCTL(vp, DIOCGWEDGEINFO, , FREAD, NOCRED); + if (error == 0) { + pdk = disk_find(dkw.dkw_parent); + if (pdk) { + pinfo.pi_secsize = (1 << pdk->dk_byteshift); + pinfo.pi_size = dkw.dkw_size; + pinfo.pi_offset = dkw.dkw_offset; + } else + error = ENODEV; + } + if (error) + error = VOP_IOCTL(vp, DIOCGPARTINFO, , FREAD, kcred); if (error != 0) { vd->vdev_stat.vs_aux = VDEV_AUX_OPEN_FAILED; return (SET_ERROR(error));
CVS commit: src/sys/dev
Module Name:src Committed By: hannken Date: Sun May 26 10:22:07 UTC 2019 Modified Files: src/sys/dev: md.c Log Message: Take "sc_lock" after calling disk_ioctl() to make GPT partitioning work. To generate a diff of this commit: cvs rdiff -u -r1.80 -r1.81 src/sys/dev/md.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/md.c diff -u src/sys/dev/md.c:1.80 src/sys/dev/md.c:1.81 --- src/sys/dev/md.c:1.80 Sat Mar 3 19:26:12 2018 +++ src/sys/dev/md.c Sun May 26 10:22:07 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: md.c,v 1.80 2018/03/03 19:26:12 christos Exp $ */ +/* $NetBSD: md.c,v 1.81 2019/05/26 10:22:07 hannken Exp $ */ /* * Copyright (c) 1995 Gordon W. Ross, Leo Weppelman. @@ -40,7 +40,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: md.c,v 1.80 2018/03/03 19:26:12 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: md.c,v 1.81 2019/05/26 10:22:07 hannken Exp $"); #ifdef _KERNEL_OPT #include "opt_md.h" @@ -479,21 +479,19 @@ mdioctl(dev_t dev, u_long cmd, void *dat if ((sc = device_lookup_private(_cd, MD_UNIT(dev))) == NULL) return ENXIO; - mutex_enter(>sc_lock); if (sc->sc_type != MD_UNCONFIGURED) { error = disk_ioctl(>sc_dkdev, dev, cmd, data, flag, l); if (error != EPASSTHROUGH) { - mutex_exit(>sc_lock); - return 0; + return error; } } /* If this is not the raw partition, punt! */ if (DISKPART(dev) != RAW_PART) { - mutex_exit(>sc_lock); return ENOTTY; } + mutex_enter(>sc_lock); umd = (struct md_conf *)data; error = EINVAL; switch (cmd) {
CVS commit: src/sys/dev
Module Name:src Committed By: hannken Date: Sun May 26 10:22:07 UTC 2019 Modified Files: src/sys/dev: md.c Log Message: Take "sc_lock" after calling disk_ioctl() to make GPT partitioning work. To generate a diff of this commit: cvs rdiff -u -r1.80 -r1.81 src/sys/dev/md.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet
Module Name:src Committed By: hannken Date: Sun May 26 10:21:01 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: arc.c dbuf.c dnode.c sa.c zfs_znode.c src/external/cddl/osnet/lib/libumem: umem.c Log Message: Add missing part of kmem_cache cleanup. Use Solaris argument order for kmem_cache destructors, umem_cache_alloc() and umem_cache_free() too. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c cvs rdiff -u -r1.7 -r1.8 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c cvs rdiff -u -r1.6 -r1.7 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c cvs rdiff -u -r1.27 -r1.28 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/lib/libumem/umem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/sys
Module Name:src Committed By: hannken Date: Sun May 26 10:21:33 UTC 2019 Modified Files: src/sys/sys: ioccom.h Log Message: Fix IOCSNPRINTF(), 'R' and 'W' were reversed. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/sys/ioccom.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/sys/ioccom.h diff -u src/sys/sys/ioccom.h:1.12 src/sys/sys/ioccom.h:1.13 --- src/sys/sys/ioccom.h:1.12 Wed Dec 10 00:16:05 2014 +++ src/sys/sys/ioccom.h Sun May 26 10:21:33 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: ioccom.h,v 1.12 2014/12/10 00:16:05 christos Exp $ */ +/* $NetBSD: ioccom.h,v 1.13 2019/05/26 10:21:33 hannken Exp $ */ /*- * Copyright (c) 1982, 1986, 1990, 1993, 1994 @@ -74,8 +74,8 @@ #define IOCSNPRINTF(buf, len, cmd) \ snprintf((buf), (len), "_IO%s%s('%c', %hhu)", \ - (((cmd) >> 30) & 1) ? "W" : "", \ - (((cmd) >> 30) & 2) ? "R" : "", \ + (((cmd) >> 30) & 1) ? "R" : "", \ + (((cmd) >> 30) & 2) ? "W" : "", \ (char)IOCGROUP(cmd), (unsigned char)(cmd))
CVS commit: src/external/cddl/osnet
Module Name:src Committed By: hannken Date: Sun May 26 10:21:01 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: arc.c dbuf.c dnode.c sa.c zfs_znode.c src/external/cddl/osnet/lib/libumem: umem.c Log Message: Add missing part of kmem_cache cleanup. Use Solaris argument order for kmem_cache destructors, umem_cache_alloc() and umem_cache_free() too. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c cvs rdiff -u -r1.7 -r1.8 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c cvs rdiff -u -r1.6 -r1.7 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c cvs rdiff -u -r1.27 -r1.28 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/lib/libumem/umem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.13 src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.14 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.13 Thu May 23 08:32:30 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c Sun May 26 10:21:00 2019 @@ -1623,9 +1623,6 @@ hdr_full_dest(void *vbuf, void *unused) { arc_buf_hdr_t *hdr = vbuf; -#ifdef __NetBSD__ - hdr = unused; -#endif ASSERT(HDR_EMPTY(hdr)); cv_destroy(>b_l1hdr.b_cv); refcount_destroy(>b_l1hdr.b_refcnt); @@ -1640,9 +1637,6 @@ hdr_l2only_dest(void *vbuf, void *unused { arc_buf_hdr_t *hdr = vbuf; -#ifdef __NetBSD__ - hdr = unused; -#endif ASSERT(HDR_EMPTY(hdr)); arc_space_return(HDR_L2ONLY_SIZE, ARC_SPACE_L2HDRS); } @@ -1653,9 +1647,6 @@ buf_dest(void *vbuf, void *unused) { arc_buf_t *buf = vbuf; -#ifdef __NetBSD__ - buf = unused; -#endif mutex_destroy(>b_evict_lock); arc_space_return(sizeof (arc_buf_t), ARC_SPACE_HDRS); } Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c:1.7 src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c:1.8 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c:1.7 Thu May 23 08:32:30 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c Sun May 26 10:21:00 2019 @@ -153,9 +153,6 @@ dbuf_dest(void *vdb, void *unused) { dmu_buf_impl_t *db = vdb; -#ifdef __NetBSD__ - db = unused; -#endif mutex_destroy(>db_mtx); cv_destroy(>db_changed); ASSERT(!multilist_link_active(>db_cache_link)); Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c:1.6 src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c:1.7 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c:1.6 Thu May 23 08:32:30 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c Sun May 26 10:21:00 2019 @@ -168,9 +168,6 @@ dnode_dest(void *arg, void *unused) int i; dnode_t *dn = arg; -#ifdef __NetBSD__ - dn = unused; -#endif rw_destroy(>dn_struct_rwlock); mutex_destroy(>dn_mtx); mutex_destroy(>dn_dbufs_mtx); Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c:1.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c:1.4 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c:1.3 Thu May 23 08:32:30 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c Sun May 26 10:21:00 2019 @@ -222,9 +222,6 @@ sa_cache_destructor(void *buf, void *unu { sa_handle_t *hdl = buf; -#ifdef __NetBSD__ - hdl = unused; -#endif mutex_destroy(>sa_lock); } Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.27 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.28 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.27 Thu May 23 08:32:30 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c Sun May 26 10:21:00 2019 @@ -152,9 +152,6 @@ zfs_znode_cache_destructor(void *buf, vo { znode_t *zp = buf; -#ifdef __NetBSD__ - zp = arg; -#endif ASSERT(!POINTER_IS_VALID(zp->z_zfsvfs)); ASSERT(ZTOV(zp) == NULL); #ifndef __NetBSD__ Index: src/external/cddl/osnet/lib/libumem/umem.c diff -u src/external/cddl/osnet/lib/libumem/umem.c:1.2 src/external/cddl/osnet/lib/libumem/umem.c:1.3 --- src/external/cddl/osnet/lib/libumem/umem.c:1.2 Sun May 2 23:59:54 2010 +++ src/external/cddl/osnet/lib/libumem/umem.c Sun May 26 10:21:00 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: umem.c,v 1.2 2010/05/02 23:59:54 haad Exp $ */ +/* $NetBSD: umem.c,v 1.3 2019/05/26 10:21:00 hannken Exp $ */ /* * CDDL HEADER START @@ -135,8 +135,7 @@ void *umem_cache_alloc(umem_cache_t *cac } if(cache->constructor != NULL) { - /* XXX NetBSD pool cache
CVS commit: src/external/cddl/osnet
Module Name:src Committed By: hannken Date: Thu May 23 08:32:31 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: arc.c dbuf.c dnode.c sa.c zfs_znode.c src/external/cddl/osnet/sys/kern: kmem.c src/external/cddl/osnet/sys/sys: kmem.h Log Message: Update the kmem_cache emulation to run its callbacks with Solaris argument order. No functional change intended. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c cvs rdiff -u -r1.6 -r1.7 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c cvs rdiff -u -r1.5 -r1.6 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c cvs rdiff -u -r1.26 -r1.27 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/sys/kern/kmem.c cvs rdiff -u -r1.10 -r1.11 src/external/cddl/osnet/sys/sys/kmem.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet
Module Name:src Committed By: hannken Date: Thu May 23 08:32:31 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: arc.c dbuf.c dnode.c sa.c zfs_znode.c src/external/cddl/osnet/sys/kern: kmem.c src/external/cddl/osnet/sys/sys: kmem.h Log Message: Update the kmem_cache emulation to run its callbacks with Solaris argument order. No functional change intended. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c cvs rdiff -u -r1.6 -r1.7 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c cvs rdiff -u -r1.5 -r1.6 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c cvs rdiff -u -r1.26 -r1.27 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/sys/kern/kmem.c cvs rdiff -u -r1.10 -r1.11 src/external/cddl/osnet/sys/sys/kmem.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.12 src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.13 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.12 Mon May 28 21:05:07 2018 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c Thu May 23 08:32:30 2019 @@ -1578,9 +1578,6 @@ hdr_full_cons(void *vbuf, void *unused, { arc_buf_hdr_t *hdr = vbuf; -#ifdef __NetBSD__ - hdr = unused; -#endif bzero(hdr, HDR_FULL_SIZE); cv_init(>b_l1hdr.b_cv, NULL, CV_DEFAULT, NULL); refcount_create(>b_l1hdr.b_refcnt); @@ -1597,9 +1594,6 @@ hdr_l2only_cons(void *vbuf, void *unused { arc_buf_hdr_t *hdr = vbuf; -#ifdef __NetBSD__ - hdr = unused; -#endif bzero(hdr, HDR_L2ONLY_SIZE); arc_space_consume(HDR_L2ONLY_SIZE, ARC_SPACE_L2HDRS); @@ -1612,9 +1606,6 @@ buf_cons(void *vbuf, void *unused, int k { arc_buf_t *buf = vbuf; -#ifdef __NetBSD__ - buf = unused; -#endif bzero(buf, sizeof (arc_buf_t)); mutex_init(>b_evict_lock, NULL, MUTEX_DEFAULT, NULL); arc_space_consume(sizeof (arc_buf_t), ARC_SPACE_HDRS); Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c:1.6 src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c:1.7 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c:1.6 Mon May 28 21:05:07 2018 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dbuf.c Thu May 23 08:32:30 2019 @@ -138,9 +138,6 @@ dbuf_cons(void *vdb, void *unused, int k { dmu_buf_impl_t *db = vdb; -#ifdef __NetBSD__ - db = unused; -#endif bzero(db, sizeof (dmu_buf_impl_t)); mutex_init(>db_mtx, NULL, MUTEX_DEFAULT, NULL); cv_init(>db_changed, NULL, CV_DEFAULT, NULL); Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c:1.5 src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c:1.6 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c:1.5 Mon May 28 21:05:07 2018 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dnode.c Thu May 23 08:32:30 2019 @@ -107,9 +107,6 @@ dnode_cons(void *arg, void *unused, int dnode_t *dn = arg; int i; -#ifdef __NetBSD__ - dn = unused; -#endif rw_init(>dn_struct_rwlock, NULL, RW_DEFAULT, NULL); mutex_init(>dn_mtx, NULL, MUTEX_DEFAULT, NULL); mutex_init(>dn_dbufs_mtx, NULL, MUTEX_DEFAULT, NULL); Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c:1.2 src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c:1.3 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c:1.2 Mon May 28 21:05:07 2018 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/sa.c Thu May 23 08:32:30 2019 @@ -212,9 +212,6 @@ sa_cache_constructor(void *buf, void *un { sa_handle_t *hdl = buf; -#ifdef __NetBSD__ - hdl = unused; -#endif mutex_init(>sa_lock, NULL, MUTEX_DEFAULT, NULL); return (0); } Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.26 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.27 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.26 Mon Apr 15 12:59:38 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c Thu May 23 08:32:30 2019 @@ -130,9 +130,6 @@ zfs_znode_cache_constructor(void *buf, v { znode_t *zp = buf; -#ifdef __NetBSD__ - zp = arg; -#endif POINTER_INVALIDATE(>z_zfsvfs); list_link_init(>z_link_node); Index: src/external/cddl/osnet/sys/kern/kmem.c diff -u src/external/cddl/osnet/sys/kern/kmem.c:1.1 src/external/cddl/osnet/sys/kern/kmem.c:1.2 --- src/external/cddl/osnet/sys/kern/kmem.c:1.1 Mon May 28 21:05:09 2018 +++ src/external/cddl/osnet/sys/kern/kmem.c Thu May 23 08:32:30 2019 @@ -1,4 +1,4 @@ -/*
CVS commit: src
Module Name:src Committed By: hannken Date: Wed May 22 08:47:02 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zvol.c src/sys/kern: subr_disk.c subr_iostat.c src/sys/sys: disk.h iostat.h Log Message: Implement disk_rename()/iostat_rename() to rename a disk. Use it from zvol_rename_minor() when renaming a ZVOL. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c cvs rdiff -u -r1.127 -r1.128 src/sys/kern/subr_disk.c cvs rdiff -u -r1.24 -r1.25 src/sys/kern/subr_iostat.c cvs rdiff -u -r1.73 -r1.74 src/sys/sys/disk.h cvs rdiff -u -r1.11 -r1.12 src/sys/sys/iostat.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c:1.11 src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c:1.12 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c:1.11 Wed May 22 08:46:27 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c Wed May 22 08:47:02 2019 @@ -3270,7 +3270,9 @@ zvol_rename_minor(zvol_state_t *zv, cons PNBUF_PUT(nm); strlcpy(zv->zv_name, newname, sizeof(zv->zv_name)); - /* XXX Update dk_name? */ + mutex_enter(>zv_dklock); + disk_rename(>zv_dk, zv->zv_name); + mutex_exit(>zv_dklock); } #endif Index: src/sys/kern/subr_disk.c diff -u src/sys/kern/subr_disk.c:1.127 src/sys/kern/subr_disk.c:1.128 --- src/sys/kern/subr_disk.c:1.127 Thu Apr 4 20:19:07 2019 +++ src/sys/kern/subr_disk.c Wed May 22 08:47:02 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_disk.c,v 1.127 2019/04/04 20:19:07 christos Exp $ */ +/* $NetBSD: subr_disk.c,v 1.128 2019/05/22 08:47:02 hannken Exp $ */ /*- * Copyright (c) 1996, 1997, 1999, 2000, 2009 The NetBSD Foundation, Inc. @@ -67,7 +67,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: subr_disk.c,v 1.127 2019/04/04 20:19:07 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: subr_disk.c,v 1.128 2019/05/22 08:47:02 hannken Exp $"); #include #include @@ -199,6 +199,17 @@ disk_init(struct disk *diskp, const char } /* + * Rename a disk. + */ +void +disk_rename(struct disk *diskp, const char *name) +{ + + diskp->dk_name = name; + iostat_rename(diskp->dk_stats, diskp->dk_name); +} + +/* * Attach a disk. */ void Index: src/sys/kern/subr_iostat.c diff -u src/sys/kern/subr_iostat.c:1.24 src/sys/kern/subr_iostat.c:1.25 --- src/sys/kern/subr_iostat.c:1.24 Mon Sep 3 16:29:35 2018 +++ src/sys/kern/subr_iostat.c Wed May 22 08:47:02 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_iostat.c,v 1.24 2018/09/03 16:29:35 riastradh Exp $ */ +/* $NetBSD: subr_iostat.c,v 1.25 2019/05/22 08:47:02 hannken Exp $ */ /* NetBSD: subr_disk.c,v 1.69 2005/05/29 22:24:15 christos Exp */ /*- @@ -68,7 +68,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: subr_iostat.c,v 1.24 2018/09/03 16:29:35 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: subr_iostat.c,v 1.25 2019/05/22 08:47:02 hannken Exp $"); #include #include @@ -180,6 +180,18 @@ iostat_free(struct io_stats *stats) } /* + * Rename i/o stats. + */ +void +iostat_rename(struct io_stats *stats, const char *name) +{ + + rw_enter(_lock, RW_WRITER); + (void)strlcpy(stats->io_name, name, sizeof(stats->io_name)); + rw_exit(_lock); +} + +/* * multiply timeval by unsigned integer and add to result */ static void Index: src/sys/sys/disk.h diff -u src/sys/sys/disk.h:1.73 src/sys/sys/disk.h:1.74 --- src/sys/sys/disk.h:1.73 Tue Nov 6 04:04:34 2018 +++ src/sys/sys/disk.h Wed May 22 08:47:02 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: disk.h,v 1.73 2018/11/06 04:04:34 mrg Exp $ */ +/* $NetBSD: disk.h,v 1.74 2019/05/22 08:47:02 hannken Exp $ */ /*- * Copyright (c) 1996, 1997, 2004 The NetBSD Foundation, Inc. @@ -527,6 +527,7 @@ extern int disk_count; /* number of di struct proc; +void disk_rename(struct disk *, const char *); void disk_attach(struct disk *); int disk_begindetach(struct disk *, int (*)(device_t), device_t, int); void disk_detach(struct disk *); Index: src/sys/sys/iostat.h diff -u src/sys/sys/iostat.h:1.11 src/sys/sys/iostat.h:1.12 --- src/sys/sys/iostat.h:1.11 Sun Mar 5 23:07:12 2017 +++ src/sys/sys/iostat.h Wed May 22 08:47:02 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: iostat.h,v 1.11 2017/03/05 23:07:12 mlelstv Exp $ */ +/* $NetBSD: iostat.h,v 1.12 2019/05/22 08:47:02 hannken Exp $ */ /*- * Copyright (c) 1996, 1997, 2004, 2009 The NetBSD Foundation, Inc. @@ -121,6 +121,7 @@ bool iostat_isbusy(struct io_stats *); struct io_stats *iostat_find(const char *); struct io_stats *iostat_alloc(int32_t, void *, const char *); void iostat_free(struct io_stats *); +void iostat_rename(struct io_stats *, const char *); void iostat_seek(struct io_stats *); #endif
CVS commit: src
Module Name:src Committed By: hannken Date: Wed May 22 08:47:02 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zvol.c src/sys/kern: subr_disk.c subr_iostat.c src/sys/sys: disk.h iostat.h Log Message: Implement disk_rename()/iostat_rename() to rename a disk. Use it from zvol_rename_minor() when renaming a ZVOL. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c cvs rdiff -u -r1.127 -r1.128 src/sys/kern/subr_disk.c cvs rdiff -u -r1.24 -r1.25 src/sys/kern/subr_iostat.c cvs rdiff -u -r1.73 -r1.74 src/sys/sys/disk.h cvs rdiff -u -r1.11 -r1.12 src/sys/sys/iostat.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Wed May 22 08:46:27 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_ioctl.c zvol.c Log Message: Add missing zvol_close() to zfsdev_close(). Change zvol_size_changed() to initialize "zv->zv_volsize" and initialize only "dg_secsize" and "dg_secperunit". Calling disk_set_info() will initialize the remaining parts of the geometry. Set "doread" in zvol_strategy() to make reading from device possible. Reorganize/add disk_busy()/disk_unbusy() instrumentation. Redo zvol_ioctl() to implement DIOCGWEDGEINFO and let disk_ioctl() process the remaining ioctls. To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c cvs rdiff -u -r1.10 -r1.11 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Wed May 22 08:45:32 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: dsl_dataset.c dsl_dir.c spa.c zfs_ioctl.c zfs_vfsops.c zvol.c src/external/cddl/osnet/dist/uts/common/fs/zfs/sys: zvol.h Log Message: Enable the zvol minor management to create and remove device nodes. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c cvs rdiff -u -r1.2 -r1.3 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dir.c cvs rdiff -u -r1.8 -r1.9 src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c cvs rdiff -u -r1.18 -r1.19 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c cvs rdiff -u -r1.22 -r1.23 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c cvs rdiff -u -r1.9 -r1.10 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c cvs rdiff -u -r1.4 -r1.5 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zvol.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: hannken Date: Wed May 22 08:45:32 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: dsl_dataset.c dsl_dir.c spa.c zfs_ioctl.c zfs_vfsops.c zvol.c src/external/cddl/osnet/dist/uts/common/fs/zfs/sys: zvol.h Log Message: Enable the zvol minor management to create and remove device nodes. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c cvs rdiff -u -r1.2 -r1.3 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dir.c cvs rdiff -u -r1.8 -r1.9 src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c cvs rdiff -u -r1.18 -r1.19 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c cvs rdiff -u -r1.22 -r1.23 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c cvs rdiff -u -r1.9 -r1.10 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c cvs rdiff -u -r1.4 -r1.5 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zvol.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c:1.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c:1.4 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c:1.3 Mon May 28 21:05:07 2018 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dataset.c Wed May 22 08:45:32 2019 @@ -1612,7 +1612,7 @@ dsl_dataset_snapshot(nvlist_t *snaps, nv fnvlist_free(suspended); } -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__NetBSD__) #ifdef _KERNEL if (error == 0) { for (pair = nvlist_next_nvpair(snaps, NULL); pair != NULL; @@ -2164,7 +2164,7 @@ static int dsl_dataset_rename_snapshot_sync_impl(dsl_pool_t *dp, dsl_dataset_t *hds, void *arg) { -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__NetBSD__) #ifdef _KERNEL char *oldname, *newname; #endif @@ -2197,7 +2197,7 @@ dsl_dataset_rename_snapshot_sync_impl(ds dsl_dataset_phys(hds)->ds_snapnames_zapobj, ds->ds_snapname, 8, 1, >ds_object, tx)); -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__NetBSD__) #ifdef _KERNEL oldname = kmem_alloc(MAXPATHLEN, KM_SLEEP); newname = kmem_alloc(MAXPATHLEN, KM_SLEEP); @@ -2640,7 +2640,7 @@ dsl_dataset_promote_sync(void *arg, dmu_ dsl_dir_t *odd = NULL; uint64_t oldnext_obj; int64_t delta; -#if defined(__FreeBSD__) && defined(_KERNEL) +#if (defined(__FreeBSD__) || defined(__NetBSD__)) && defined(_KERNEL) char *oldname, *newname; #endif @@ -2710,7 +2710,7 @@ dsl_dataset_promote_sync(void *arg, dmu_ dsl_dir_phys(dd)->dd_clones, origin_head->ds_object, tx)); } -#if defined(__FreeBSD__) && defined(_KERNEL) +#if (defined(__FreeBSD__) || defined(__NetBSD__)) && defined(_KERNEL) /* Take the spa_namespace_lock early so zvol renames don't deadlock. */ mutex_enter(_namespace_lock); @@ -2752,7 +2752,7 @@ dsl_dataset_promote_sync(void *arg, dmu_ VERIFY0(dsl_dir_hold_obj(dp, dd->dd_object, NULL, ds, >ds_dir)); -#if defined(__FreeBSD__) && defined(_KERNEL) +#if (defined(__FreeBSD__) || defined(__NetBSD__)) && defined(_KERNEL) dsl_dataset_name(ds, newname); zfsvfs_update_fromname(oldname, newname); zvol_rename_minors(oldname, newname); Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dir.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dir.c:1.2 src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dir.c:1.3 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dir.c:1.2 Mon May 28 21:05:07 2018 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dsl_dir.c Wed May 22 08:45:32 2019 @@ -1912,7 +1912,7 @@ dsl_dir_rename_sync(void *arg, dmu_tx_t VERIFY0(zap_add(mos, dsl_dir_phys(newparent)->dd_child_dir_zapobj, dd->dd_myname, 8, 1, >dd_object, tx)); -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__NetBSD__) #ifdef _KERNEL zfsvfs_update_fromname(ddra->ddra_oldname, ddra->ddra_newname); zvol_rename_minors(ddra->ddra_oldname, ddra->ddra_newname); Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c:1.8 src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c:1.9 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c:1.8 Tue May 7 08:49:59 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c Wed May 22 08:45:32 2019 @@ -3226,7 +3226,7 @@ spa_open_common(const char *pool, spa_t spa->spa_last_ubsync_txg = 0; spa->spa_load_txg = 0; mutex_exit(_namespace_lock); -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__NetBSD__) #ifdef _KERNEL if (firstopen) zvol_create_minors(spa->spa_name); @@ -4508,7 +4508,7 @@ spa_import(const char *pool, nvlist_t *c mutex_exit(_namespace_lock); -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) ||
CVS commit: src/external/cddl/osnet
Module Name:src Committed By: hannken Date: Wed May 22 08:44:49 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_ioctl.c zvol.c src/external/cddl/osnet/sys/kern: ddi.c src/external/cddl/osnet/sys/sys: sunddi.h Log Message: Update ddi environment: - Put device major numbers into "dev_info_t". - Fix an off-by-one in zvol_create_minor(). - When creating a node handle existing nodes and add owner read/write permission. - When removing nodes remove now empty directories. To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c cvs rdiff -u -r1.8 -r1.9 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c cvs rdiff -u -r1.6 -r1.7 src/external/cddl/osnet/sys/kern/ddi.c cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/sys/sys/sunddi.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet
Module Name:src Committed By: hannken Date: Wed May 22 08:44:49 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_ioctl.c zvol.c src/external/cddl/osnet/sys/kern: ddi.c src/external/cddl/osnet/sys/sys: sunddi.h Log Message: Update ddi environment: - Put device major numbers into "dev_info_t". - Fix an off-by-one in zvol_create_minor(). - When creating a node handle existing nodes and add owner read/write permission. - When removing nodes remove now empty directories. To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c cvs rdiff -u -r1.8 -r1.9 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c cvs rdiff -u -r1.6 -r1.7 src/external/cddl/osnet/sys/kern/ddi.c cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/sys/sys/sunddi.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c:1.17 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c:1.18 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c:1.17 Tue May 7 08:51:09 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_ioctl.c Wed May 22 08:44:48 2019 @@ -211,11 +211,8 @@ static struct cdev *zfsdev; #endif #ifdef __NetBSD__ -static int zfs_cmajor = -1; -static int zfs_bmajor = -1; -dev_info_t *zfs_dip; - -#define ddi_driver_major(x) zfs_cmajor +static dev_info_t __zfs_devinfo = { -1, -1 }; +dev_info_t *zfs_dip = &__zfs_devinfo; #define zfs_init() /* nothing */ #define zfs_fini() /* nothing */ @@ -7204,8 +7201,8 @@ zfs_modcmd(modcmd_t cmd, void *arg) zfs_ioctl_init(); zfs_sysctl_init(); - error = devsw_attach("zfs", _bdevsw, _bmajor, - _cdevsw, _cmajor); + error = devsw_attach("zfs", _bdevsw, _dip->di_bmajor, + _cdevsw, _dip->di_cmajor); if (error != 0) { goto attacherr; } Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c:1.8 src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c:1.9 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c:1.8 Mon May 28 21:05:07 2018 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c Wed May 22 08:44:48 2019 @@ -676,7 +676,7 @@ zvol_create_minor(const char *name) minor_t minor = 0; vnode_t *vp = NULL; char *devpath; - size_t devpathlen = strlen(ZVOL_FULL_DEV_DIR) + strlen(name) + 1; + size_t devpathlen = strlen(ZVOL_FULL_DEV_DIR) + strlen(name) + 2; #endif mutex_enter(_state_lock); Index: src/external/cddl/osnet/sys/kern/ddi.c diff -u src/external/cddl/osnet/sys/kern/ddi.c:1.6 src/external/cddl/osnet/sys/kern/ddi.c:1.7 --- src/external/cddl/osnet/sys/kern/ddi.c:1.6 Mon May 28 21:05:09 2018 +++ src/external/cddl/osnet/sys/kern/ddi.c Wed May 22 08:44:48 2019 @@ -65,6 +65,7 @@ #include #include #include +#include #include __strong_alias(ddi_strtol,ddi_strtoul) @@ -142,6 +143,50 @@ do_mkdirp(const char *path) return error; } +static void +do_rmdirp(const char *path) +{ + struct pathbuf *pb; + struct nameidata nd; + char *here, *e; + int error; + + here = PNBUF_GET(); + strlcpy(here, path, MAXPATHLEN); + while ((e = strrchr(here, '/')) && e != here) { + *e = '\0'; + pb = pathbuf_create(here); + if (pb == NULL) + break; + /* XXX need do_sys_rmdir()? */ + NDINIT(, DELETE, LOCKPARENT | LOCKLEAF | TRYEMULROOT, pb); + error = namei(); + if (error) { + pathbuf_destroy(pb); + break; + } + if ((nd.ni_vp->v_vflag & VV_ROOT) || + nd.ni_vp->v_type != VDIR || + nd.ni_vp->v_mountedhere || + nd.ni_vp == nd.ni_dvp) { + VOP_ABORTOP(nd.ni_dvp, _cnd); + if (nd.ni_vp == nd.ni_dvp) +vrele(nd.ni_dvp); + else +vput(nd.ni_dvp); + vput(nd.ni_vp); + pathbuf_destroy(pb); + break; + } + error = VOP_RMDIR(nd.ni_dvp, nd.ni_vp, _cnd); + vput(nd.ni_dvp); + pathbuf_destroy(pb); + if (error) + break; + } + PNBUF_PUT(here); +} + int ddi_strtoul(const char *str, char **nptr, int base, unsigned long *result) { @@ -562,25 +607,49 @@ ddi_create_minor_node(dev_info_t *dip, c minor_t minor_num, char *node_type, int flag) { struct lwp *l = curlwp; + vnode_t *vp; + enum vtype vtype; + struct stat sb; char *pn; dev_t dev; int error; register_t ret; - printf("ddi_create_minor_node: name %s\n", name); - - dev = makedev(flag, minor_num); - pn = PNBUF_GET(); - if (spec_type == S_IFCHR) + if (spec_type == S_IFCHR) { + vtype = VCHR; + dev = makedev(dip->di_cmajor, minor_num); snprintf(pn, MAXPATHLEN, "/dev/zvol/rdsk/%s", name); - else + } else if (spec_type == S_IFBLK) { + vtype = VBLK; + dev = makedev(dip->di_bmajor, minor_num); snprintf(pn, MAXPATHLEN, "/dev/zvol/dsk/%s", name); + } else { + panic("bad spectype %#x", spec_type); + } + spec_type |= (S_IRUSR |