Module Name: src Committed By: tls Date: Sun Aug 10 06:50:29 UTC 2014
Modified Files: src/external/cddl/osnet/dev/fbt [tls-earlyentropy]: fbt.c src/external/cddl/osnet/dev/sdt [tls-earlyentropy]: sdt.c src/external/cddl/osnet/dist/tools/ctf/cvt [tls-earlyentropy]: dwarf.c src/external/cddl/osnet/dist/uts/common/dtrace [tls-earlyentropy]: dtrace.c src/external/cddl/osnet/dist/uts/common/fs/zfs [tls-earlyentropy]: zfs_vfsops.c zfs_vnops.c zvol.c src/external/cddl/osnet/lib/libzpool [tls-earlyentropy]: Makefile atomic.c src/external/cddl/osnet/usr.bin/ctfdump [tls-earlyentropy]: Makefile Log Message: Rebase. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.15.2.1 src/external/cddl/osnet/dev/fbt/fbt.c cvs rdiff -u -r1.8 -r1.8.18.1 src/external/cddl/osnet/dev/sdt/sdt.c cvs rdiff -u -r1.9 -r1.9.2.1 \ src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c cvs rdiff -u -r1.27 -r1.27.2.1 \ src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c cvs rdiff -u -r1.10 -r1.10.2.1 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c cvs rdiff -u -r1.17 -r1.17.2.1 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c cvs rdiff -u -r1.5 -r1.5.2.1 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c cvs rdiff -u -r1.8 -r1.8.2.1 src/external/cddl/osnet/lib/libzpool/Makefile cvs rdiff -u -r1.1 -r1.1.6.1 src/external/cddl/osnet/lib/libzpool/atomic.c cvs rdiff -u -r1.6 -r1.6.2.1 src/external/cddl/osnet/usr.bin/ctfdump/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/dev/fbt/fbt.c diff -u src/external/cddl/osnet/dev/fbt/fbt.c:1.15 src/external/cddl/osnet/dev/fbt/fbt.c:1.15.2.1 --- src/external/cddl/osnet/dev/fbt/fbt.c:1.15 Wed Mar 19 11:14:12 2014 +++ src/external/cddl/osnet/dev/fbt/fbt.c Sun Aug 10 06:50:28 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: fbt.c,v 1.15 2014/03/19 11:14:12 ozaki-r Exp $ */ +/* $NetBSD: fbt.c,v 1.15.2.1 2014/08/10 06:50:28 tls Exp $ */ /* * CDDL HEADER START @@ -153,7 +153,7 @@ static void fbt_resume(void *, dtrace_id static const struct cdevsw fbt_cdevsw = { fbt_open, noclose, noread, nowrite, noioctl, - nostop, notty, nopoll, nommap, nokqfilter, + nostop, notty, nopoll, nommap, nokqfilter, nodiscard, D_OTHER }; Index: src/external/cddl/osnet/dev/sdt/sdt.c diff -u src/external/cddl/osnet/dev/sdt/sdt.c:1.8 src/external/cddl/osnet/dev/sdt/sdt.c:1.8.18.1 --- src/external/cddl/osnet/dev/sdt/sdt.c:1.8 Sat Jul 30 10:12:14 2011 +++ src/external/cddl/osnet/dev/sdt/sdt.c Sun Aug 10 06:50:28 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: sdt.c,v 1.8 2011/07/30 10:12:14 uebayasi Exp $ */ +/* $NetBSD: sdt.c,v 1.8.18.1 2014/08/10 06:50:28 tls Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -63,7 +63,7 @@ static void sdt_load(void *); static const struct cdevsw sdt_cdevsw = { sdt_open, noclose, noread, nowrite, noioctl, - nostop, notty, nopoll, nommap, nokqfilter, + nostop, notty, nopoll, nommap, nokqfilter, nodiscard, D_OTHER }; Index: src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c:1.9 src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c:1.9.2.1 --- src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c:1.9 Sun Mar 9 20:48:01 2014 +++ src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c Sun Aug 10 06:50:28 2014 @@ -1924,7 +1924,6 @@ should_have_dwarf(Elf *elf) char *name; name = elf_strptr(elf, shdr.sh_link, sym.st_name); -fprintf(stderr, "name = %s\n", name); /* Studio emits these local symbols regardless */ if ((strcmp(name, "Bbss.bss") != 0) && @@ -1995,15 +1994,29 @@ dw_read(tdata_t *td, Elf *elf, char *fil &addrsz, &offsz, NULL, &nxthdr, &dw.dw_err)) != DW_DLV_OK) terminate("rc = %d %s\n", rc, dwarf_errmsg(dw.dw_err)); - if ((cu = die_sibling(&dw, NULL)) == NULL || - (((child = die_child(&dw, cu)) == NULL) && - should_have_dwarf(elf))) { - terminate("file does not contain dwarf type data " - "(try compiling with -g)\n"); - } else if (child == NULL) { - return (0); + if ((cu = die_sibling(&dw, NULL)) == NULL) + goto out; + + if ((child = die_child(&dw, cu)) == NULL) { + Dwarf_Unsigned lang; + if (die_unsigned(&dw, cu, DW_AT_language, &lang, 0)) { + debug(1, "DWARF language: %u\n", lang); + /* + * Assembly languages are typically that. + * They have some dwarf info, but not what + * we expect. They have local symbols for + * example, but they are missing the child info. + */ + if (lang >= DW_LANG_lo_user) + return 0; + } + if (should_have_dwarf(elf)) + goto out; } + if (child == NULL) + return (0); + dw.dw_maxoff = nxthdr - 1; if (dw.dw_maxoff > TID_FILEMAX) @@ -2044,4 +2057,7 @@ dw_read(tdata_t *td, Elf *elf, char *fil /* leak the dwarf_t */ return (0); +out: + terminate("file does not contain dwarf type data " + "(try compiling with -g)\n"); } Index: src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c diff -u src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c:1.27 src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c:1.27.2.1 --- src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c:1.27 Thu Mar 27 15:50:48 2014 +++ src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c Sun Aug 10 06:50:28 2014 @@ -15349,7 +15349,7 @@ static dev_type_open(dtrace_open); /* Just opens, clones to the fileops below */ const struct cdevsw dtrace_cdevsw = { dtrace_open, noclose, noread, nowrite, noioctl, - nostop, notty, nopoll, nommap, nokqfilter, + nostop, notty, nopoll, nommap, nokqfilter, nodiscard, D_OTHER | D_MPSAFE }; 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.10 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.10.2.1 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.10 Thu Mar 27 15:50:48 2014 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c Sun Aug 10 06:50:28 2014 @@ -147,6 +147,20 @@ static mntopts_t zfs_mntopts = { mntopts }; +static bool +zfs_sync_selector(void *cl, struct vnode *vp) +{ + znode_t *zp; + + /* + * Skip the vnode/inode if inaccessible, or if the + * atime is clean. + */ + zp = VTOZ(vp); + return zp != NULL && vp->v_type != VNON && zp->z_atime_dirty != 0 + && !zp->z_unlinked; +} + /*ARGSUSED*/ int zfs_sync(vfs_t *vfsp, int flag, cred_t *cr) @@ -174,22 +188,14 @@ zfs_sync(vfs_t *vfsp, int flag, cred_t * * BSD VFS, so we do it in batch here. */ vfs_vnode_iterator_init(vfsp, &marker); - while (vfs_vnode_iterator_next(marker, &vp)) { + while ((vp = vfs_vnode_iterator_next(marker, zfs_sync_selector, NULL))) + { error = vn_lock(vp, LK_EXCLUSIVE); if (error) { vrele(vp); continue; } - /* - * Skip the vnode/inode if inaccessible, or if the - * atime is clean. - */ zp = VTOZ(vp); - if (zp == NULL || vp->v_type == VNON || - zp->z_atime_dirty == 0 || zp->z_unlinked) { - vput(vp); - continue; - } tx = dmu_tx_create(zfsvfs->z_os); dmu_tx_hold_bonus(tx, zp->z_id); error = dmu_tx_assign(tx, TXG_WAIT); @@ -1596,6 +1602,9 @@ zfs_mount(vfs_t *vfsp, const char *path, if (mvp->v_type != VDIR) return (ENOTDIR); + if (uap == NULL) + return (EINVAL); + mutex_enter(mvp->v_interlock); if ((uap->flags & MS_REMOUNT) == 0 && (uap->flags & MS_OVERLAY) == 0 && @@ -1959,6 +1968,9 @@ zfs_umount(vfs_t *vfsp, int fflag) } } #endif + ret = vflush(vfsp, NULL, (ISSET(fflag, MS_FORCE)? FORCECLOSE : 0)); + if (ret != 0) + return ret; vfsp->vfs_flag |= VFS_UNMOUNTED; VERIFY(zfsvfs_teardown(zfsvfs, B_TRUE) == 0); @@ -1988,13 +2000,6 @@ zfs_umount(vfs_t *vfsp, int fflag) if (zfsvfs->z_ctldir != NULL) zfsctl_destroy(zfsvfs); - if (fflag & MS_FORCE) - flags |= FORCECLOSE; - - ret = vflush(vfsp, NULL, 0); - if (ret != 0) - return ret; - return (0); } 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.17 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.17.2.1 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.17 Fri Feb 7 15:29:20 2014 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Sun Aug 10 06:50:28 2014 @@ -215,6 +215,7 @@ zfs_close(vnode_t *vp, int flag, int cou zp->z_phys->zp_size > 0) VERIFY(fs_vscan(vp, cr, 1) == 0); + ZFS_EXIT(zfsvfs); return (0); } 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.5 src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c:1.5.2.1 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c:1.5 Thu Mar 27 15:50:48 2014 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zvol.c Sun Aug 10 06:50:28 2014 @@ -189,10 +189,12 @@ zvol_check_volsize(uint64_t volsize, uin if (volsize % blocksize != 0) return (EINVAL); +#if 0 #ifdef _ILP32 if (volsize - 1 > SPEC_MAXOFFSET_T) return (EOVERFLOW); #endif +#endif return (0); } Index: src/external/cddl/osnet/lib/libzpool/Makefile diff -u src/external/cddl/osnet/lib/libzpool/Makefile:1.8 src/external/cddl/osnet/lib/libzpool/Makefile:1.8.2.1 --- src/external/cddl/osnet/lib/libzpool/Makefile:1.8 Wed Sep 11 23:04:10 2013 +++ src/external/cddl/osnet/lib/libzpool/Makefile Sun Aug 10 06:50:28 2014 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.8 2013/09/11 23:04:10 joerg Exp $ +# $NetBSD: Makefile,v 1.8.2.1 2014/08/10 06:50:28 tls Exp $ .include "${.CURDIR}/../../dist/uts/common/Makefile.files" .include "../../Makefile.zfs" @@ -21,10 +21,7 @@ CPPFLAGS+= -std=c99 #CPPFLAGS+=-Wall -Wno-unknown-pragmas # Local stuff -SRCS= kernel.c kernel2.c -.if ${MACHINE_ARCH} == "arm" -SRCS+= atomic.c -.endif +SRCS= kernel.c kernel2.c atomic.c # Sun stuff SRCS+= ${ZFS_COMMON_OBJS:C/.o$/.c/} Index: src/external/cddl/osnet/lib/libzpool/atomic.c diff -u src/external/cddl/osnet/lib/libzpool/atomic.c:1.1 src/external/cddl/osnet/lib/libzpool/atomic.c:1.1.6.1 --- src/external/cddl/osnet/lib/libzpool/atomic.c:1.1 Fri Jun 21 19:16:01 2013 +++ src/external/cddl/osnet/lib/libzpool/atomic.c Sun Aug 10 06:50:28 2014 @@ -1,7 +1,9 @@ -#include <inttypes.h> +#include <sys/types.h> #include <sys/atomic.h> +#ifndef __HAVE_ATOMIC64_OPS + /* XXX: Not so atomic, could use mutexes but not worth it */ uint64_t atomic_cas_64(volatile uint64_t *ptr, uint64_t old, uint64_t new) { @@ -30,3 +32,5 @@ uint64_t atomic_add_64_nv(volatile uint64_t *ptr, int64_t delta) { return *ptr += delta; } + +#endif Index: src/external/cddl/osnet/usr.bin/ctfdump/Makefile diff -u src/external/cddl/osnet/usr.bin/ctfdump/Makefile:1.6 src/external/cddl/osnet/usr.bin/ctfdump/Makefile:1.6.2.1 --- src/external/cddl/osnet/usr.bin/ctfdump/Makefile:1.6 Sun Mar 9 22:01:31 2014 +++ src/external/cddl/osnet/usr.bin/ctfdump/Makefile Sun Aug 10 06:50:28 2014 @@ -1,7 +1,9 @@ -# $NetBSD: Makefile,v 1.6 2014/03/09 22:01:31 christos Exp $ +# $NetBSD: Makefile,v 1.6.2.1 2014/08/10 06:50:28 tls Exp $ # $FreeBSD: src/cddl/usr.bin/ctfdump/Makefile,v 1.1.4.1 2009/08/03 08:13:06 kensmith Exp $ +.include <bsd.own.mk> + .include "../../Makefile.inc" .include "../../Makefile.ctf"