Date: Sun, 16 Aug 2020 18:24:48 +0000 (UTC) From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r364279 - in projects/clang1100-import: lib/libcasper/services lib/libcasper/services/cap_dns lib/libcasper/services/cap_net share/mk sys/compat/linuxkpi/common/include/linux sys/fs/aut... Message-ID: <202008161824.07GIOmaM078113@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dim Date: Sun Aug 16 18:24:48 2020 New Revision: 364279 URL: https://svnweb.freebsd.org/changeset/base/364279 Log: Merge ^/head r364264 through r364278. Added: projects/clang1100-import/lib/libcasper/services/cap_net/ - copied from r364278, head/lib/libcasper/services/cap_net/ Modified: projects/clang1100-import/lib/libcasper/services/Makefile projects/clang1100-import/lib/libcasper/services/cap_dns/Makefile projects/clang1100-import/lib/libcasper/services/cap_dns/cap_dns.3 projects/clang1100-import/share/mk/src.libnames.mk projects/clang1100-import/sys/compat/linuxkpi/common/include/linux/fs.h projects/clang1100-import/sys/fs/autofs/autofs_vnops.c projects/clang1100-import/sys/fs/ext2fs/ext2_vfsops.c projects/clang1100-import/sys/fs/fdescfs/fdesc_vfsops.c projects/clang1100-import/sys/fs/fdescfs/fdesc_vnops.c projects/clang1100-import/sys/fs/fuse/fuse_vfsops.c projects/clang1100-import/sys/fs/msdosfs/msdosfs_vfsops.c projects/clang1100-import/sys/fs/nfsclient/nfs_clvfsops.c projects/clang1100-import/sys/fs/nullfs/null_vfsops.c projects/clang1100-import/sys/fs/pseudofs/pseudofs_vncache.c projects/clang1100-import/sys/fs/smbfs/smbfs_node.c projects/clang1100-import/sys/fs/smbfs/smbfs_vfsops.c projects/clang1100-import/sys/fs/tmpfs/tmpfs_subr.c projects/clang1100-import/sys/fs/tmpfs/tmpfs_vfsops.c projects/clang1100-import/sys/kern/uipc_mqueue.c projects/clang1100-import/sys/kern/vfs_cache.c projects/clang1100-import/sys/kern/vfs_default.c projects/clang1100-import/sys/kern/vfs_lookup.c projects/clang1100-import/sys/kern/vfs_subr.c projects/clang1100-import/sys/modules/nvd/Makefile projects/clang1100-import/sys/modules/usb/cp2112/Makefile projects/clang1100-import/sys/netinet/sctp_input.c projects/clang1100-import/sys/netinet/sctp_output.c projects/clang1100-import/sys/netinet/sctp_pcb.c projects/clang1100-import/sys/netinet/sctp_structs.h projects/clang1100-import/sys/netinet/sctputil.c projects/clang1100-import/sys/netinet/sctputil.h projects/clang1100-import/sys/sys/namei.h projects/clang1100-import/sys/sys/param.h projects/clang1100-import/sys/sys/vnode.h projects/clang1100-import/sys/ufs/ffs/ffs_alloc.c projects/clang1100-import/sys/ufs/ffs/ffs_softdep.c projects/clang1100-import/sys/ufs/ffs/ffs_vfsops.c projects/clang1100-import/sys/ufs/ufs/ufs_quota.c projects/clang1100-import/sys/vm/vm_fault.c projects/clang1100-import/sys/vm/vm_mmap.c projects/clang1100-import/sys/vm/vm_pageout.c Directory Properties: projects/clang1100-import/ (props changed) Modified: projects/clang1100-import/lib/libcasper/services/Makefile ============================================================================== --- projects/clang1100-import/lib/libcasper/services/Makefile Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/lib/libcasper/services/Makefile Sun Aug 16 18:24:48 2020 (r364279) @@ -5,6 +5,7 @@ SUBDIR= cap_dns SUBDIR+= cap_fileargs SUBDIR+= cap_grp +SUBDIR+= cap_net SUBDIR+= cap_pwd SUBDIR+= cap_sysctl SUBDIR+= cap_syslog Modified: projects/clang1100-import/lib/libcasper/services/cap_dns/Makefile ============================================================================== --- projects/clang1100-import/lib/libcasper/services/cap_dns/Makefile Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/lib/libcasper/services/cap_dns/Makefile Sun Aug 16 18:24:48 2020 (r364279) @@ -27,11 +27,6 @@ SUBDIR.${MK_TESTS}+= tests MAN+= cap_dns.3 MLINKS+=cap_dns.3 libcap_dns.3 -MLINKS+=cap_dns.3 cap_gethostbyname.3 -MLINKS+=cap_dns.3 cap_gethostbyname2.3 -MLINKS+=cap_dns.3 cap_gethostbyaddr.3 -MLINKS+=cap_dns.3 cap_getaddrinfo.3 -MLINKS+=cap_dns.3 cap_getnameinfo.3 MLINKS+=cap_dns.3 cap_dns_type_limit.3 MLINKS+=cap_dns.3 cap_dns_family_limit.3 Modified: projects/clang1100-import/lib/libcasper/services/cap_dns/cap_dns.3 ============================================================================== --- projects/clang1100-import/lib/libcasper/services/cap_dns/cap_dns.3 Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/lib/libcasper/services/cap_dns/cap_dns.3 Sun Aug 16 18:24:48 2020 (r364279) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 5, 2020 +.Dd August 15, 2020 .Dt CAP_DNS 3 .Os .Sh NAME @@ -58,6 +58,9 @@ .Fn cap_dns_family_limit "const cap_channel_t *chan" "const int *families" "size_t nfamilies" .Sh DESCRIPTION .Bf -symbolic +This service is obsolete and +.Xr cap_net 3 +should be used instead. The .Fn cap_getaddrinfo , and Modified: projects/clang1100-import/share/mk/src.libnames.mk ============================================================================== --- projects/clang1100-import/share/mk/src.libnames.mk Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/share/mk/src.libnames.mk Sun Aug 16 18:24:48 2020 (r364279) @@ -89,6 +89,7 @@ _LIBRARIES= \ cap_dns \ cap_fileargs \ cap_grp \ + cap_net \ cap_pwd \ cap_sysctl \ cap_syslog \ @@ -637,6 +638,7 @@ LIBBSNMPDIR= ${OBJTOP}/lib/libbsnmp/libbsnmp LIBCASPERDIR= ${OBJTOP}/lib/libcasper/libcasper LIBCAP_DNSDIR= ${OBJTOP}/lib/libcasper/services/cap_dns LIBCAP_GRPDIR= ${OBJTOP}/lib/libcasper/services/cap_grp +LIBCAP_NETDIR= ${OBJTOP}/lib/libcasper/services/cap_net LIBCAP_PWDDIR= ${OBJTOP}/lib/libcasper/services/cap_pwd LIBCAP_SYSCTLDIR= ${OBJTOP}/lib/libcasper/services/cap_sysctl LIBCAP_SYSLOGDIR= ${OBJTOP}/lib/libcasper/services/cap_syslog Modified: projects/clang1100-import/sys/compat/linuxkpi/common/include/linux/fs.h ============================================================================== --- projects/clang1100-import/sys/compat/linuxkpi/common/include/linux/fs.h Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/compat/linuxkpi/common/include/linux/fs.h Sun Aug 16 18:24:48 2020 (r364279) @@ -260,7 +260,7 @@ igrab(struct inode *inode) { int error; - error = vget(inode, 0, curthread); + error = vget(inode, 0); if (error) return (NULL); Modified: projects/clang1100-import/sys/fs/autofs/autofs_vnops.c ============================================================================== --- projects/clang1100-import/sys/fs/autofs/autofs_vnops.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/fs/autofs/autofs_vnops.c Sun Aug 16 18:24:48 2020 (r364279) @@ -656,7 +656,7 @@ autofs_node_vn(struct autofs_node *anp, struct mount * vp = anp->an_vnode; if (vp != NULL) { - error = vget(vp, flags | LK_RETRY, curthread); + error = vget(vp, flags | LK_RETRY); if (error != 0) { AUTOFS_WARN("vget failed with error %d", error); sx_xunlock(&anp->an_vnode_lock); Modified: projects/clang1100-import/sys/fs/ext2fs/ext2_vfsops.c ============================================================================== --- projects/clang1100-import/sys/fs/ext2fs/ext2_vfsops.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/fs/ext2fs/ext2_vfsops.c Sun Aug 16 18:24:48 2020 (r364279) @@ -799,7 +799,7 @@ loop: /* * Step 4: invalidate all cached file data. */ - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, td)) { + if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK)) { MNT_VNODE_FOREACH_ALL_ABORT(mp, mvp); goto loop; } @@ -1158,7 +1158,7 @@ loop: VI_UNLOCK(vp); continue; } - error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK, td); + error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK); if (error) { if (error == ENOENT) { MNT_VNODE_FOREACH_ALL_ABORT(mp, mvp); Modified: projects/clang1100-import/sys/fs/fdescfs/fdesc_vfsops.c ============================================================================== --- projects/clang1100-import/sys/fs/fdescfs/fdesc_vfsops.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/fs/fdescfs/fdesc_vfsops.c Sun Aug 16 18:24:48 2020 (r364279) @@ -163,7 +163,7 @@ fdesc_root(struct mount *mp, int flags, struct vnode * * Return locked reference to root. */ vp = VFSTOFDESC(mp)->f_root; - vget(vp, LK_EXCLUSIVE | LK_RETRY, curthread); + vget(vp, LK_EXCLUSIVE | LK_RETRY); *vpp = vp; return (0); } Modified: projects/clang1100-import/sys/fs/fdescfs/fdesc_vnops.c ============================================================================== --- projects/clang1100-import/sys/fs/fdescfs/fdesc_vnops.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/fs/fdescfs/fdesc_vnops.c Sun Aug 16 18:24:48 2020 (r364279) @@ -182,7 +182,7 @@ loop: vp = fd->fd_vnode; VI_LOCK(vp); mtx_unlock(&fdesc_hashmtx); - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, td)) + if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK)) goto loop; *vpp = vp; return (0); @@ -232,7 +232,7 @@ loop: vp2 = fd2->fd_vnode; VI_LOCK(vp2); mtx_unlock(&fdesc_hashmtx); - error = vget(vp2, LK_EXCLUSIVE | LK_INTERLOCK, td); + error = vget(vp2, LK_EXCLUSIVE | LK_INTERLOCK); /* Someone beat us, dec use count and wait for reclaim */ vgone(vp); vput(vp); Modified: projects/clang1100-import/sys/fs/fuse/fuse_vfsops.c ============================================================================== --- projects/clang1100-import/sys/fs/fuse/fuse_vfsops.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/fs/fuse/fuse_vfsops.c Sun Aug 16 18:24:48 2020 (r364279) @@ -610,7 +610,7 @@ fuse_vfsop_root(struct mount *mp, int lkflags, struct int err = 0; if (data->vroot != NULL) { - err = vget(data->vroot, lkflags, curthread); + err = vget(data->vroot, lkflags); if (err == 0) *vpp = data->vroot; } else { Modified: projects/clang1100-import/sys/fs/msdosfs/msdosfs_vfsops.c ============================================================================== --- projects/clang1100-import/sys/fs/msdosfs/msdosfs_vfsops.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/fs/msdosfs/msdosfs_vfsops.c Sun Aug 16 18:24:48 2020 (r364279) @@ -921,7 +921,7 @@ loop: VI_UNLOCK(vp); continue; } - error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK, td); + error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK); if (error) { if (error == ENOENT) { MNT_VNODE_FOREACH_ALL_ABORT(mp, nvp); Modified: projects/clang1100-import/sys/fs/nfsclient/nfs_clvfsops.c ============================================================================== --- projects/clang1100-import/sys/fs/nfsclient/nfs_clvfsops.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/fs/nfsclient/nfs_clvfsops.c Sun Aug 16 18:24:48 2020 (r364279) @@ -1828,7 +1828,7 @@ loop: VI_UNLOCK(vp); continue; } - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, td)) { + if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK)) { MNT_VNODE_FOREACH_ALL_ABORT(mp, mvp); goto loop; } Modified: projects/clang1100-import/sys/fs/nullfs/null_vfsops.c ============================================================================== --- projects/clang1100-import/sys/fs/nullfs/null_vfsops.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/fs/nullfs/null_vfsops.c Sun Aug 16 18:24:48 2020 (r364279) @@ -281,7 +281,7 @@ nullfs_root(mp, flags, vpp) NULLFSDEBUG("nullfs_root(mp = %p, vp = %p)\n", mp, mntdata->nullm_lowerrootvp); - error = vget(mntdata->nullm_lowerrootvp, flags, curthread); + error = vget(mntdata->nullm_lowerrootvp, flags); if (error == 0) { error = null_nodeget(mp, mntdata->nullm_lowerrootvp, &vp); if (error == 0) { Modified: projects/clang1100-import/sys/fs/pseudofs/pseudofs_vncache.c ============================================================================== --- projects/clang1100-import/sys/fs/pseudofs/pseudofs_vncache.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/fs/pseudofs/pseudofs_vncache.c Sun Aug 16 18:24:48 2020 (r364279) @@ -136,7 +136,7 @@ retry: vp = pvd->pvd_vnode; VI_LOCK(vp); mtx_unlock(&pfs_vncache_mutex); - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, curthread) == 0) { + if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK) == 0) { ++pfs_vncache_hits; *vpp = vp; /* @@ -218,7 +218,7 @@ retry2: vp = pvd2->pvd_vnode; VI_LOCK(vp); mtx_unlock(&pfs_vncache_mutex); - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, curthread) == 0) { + if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK) == 0) { ++pfs_vncache_hits; vgone(*vpp); vput(*vpp); Modified: projects/clang1100-import/sys/fs/smbfs/smbfs_node.c ============================================================================== --- projects/clang1100-import/sys/fs/smbfs/smbfs_node.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/fs/smbfs/smbfs_node.c Sun Aug 16 18:24:48 2020 (r364279) @@ -124,7 +124,7 @@ smbfs_node_alloc(struct mount *mp, struct vnode *dvp, if (dvp == NULL) return EINVAL; vp = VTOSMB(VTOSMB(dvp)->n_parent)->n_vnode; - error = vget(vp, LK_EXCLUSIVE, td); + error = vget(vp, LK_EXCLUSIVE); if (error == 0) *vpp = vp; return error; Modified: projects/clang1100-import/sys/fs/smbfs/smbfs_vfsops.c ============================================================================== --- projects/clang1100-import/sys/fs/smbfs/smbfs_vfsops.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/fs/smbfs/smbfs_vfsops.c Sun Aug 16 18:24:48 2020 (r364279) @@ -329,7 +329,7 @@ smbfs_root(struct mount *mp, int flags, struct vnode * if (smp->sm_root) { *vpp = SMBTOV(smp->sm_root); - return vget(*vpp, LK_EXCLUSIVE | LK_RETRY, td); + return vget(*vpp, LK_EXCLUSIVE | LK_RETRY); } scred = smbfs_malloc_scred(); smb_makescred(scred, td, cred); Modified: projects/clang1100-import/sys/fs/tmpfs/tmpfs_subr.c ============================================================================== --- projects/clang1100-import/sys/fs/tmpfs/tmpfs_subr.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/fs/tmpfs/tmpfs_subr.c Sun Aug 16 18:24:48 2020 (r364279) @@ -588,6 +588,7 @@ tmpfs_alloc_vp(struct mount *mp, struct tmpfs_node *no struct vnode **vpp) { struct vnode *vp; + enum vgetstate vs; struct tmpfs_mount *tm; vm_object_t object; int error; @@ -600,18 +601,15 @@ loop: TMPFS_NODE_ASSERT_LOCKED(node); if ((vp = node->tn_vnode) != NULL) { MPASS((node->tn_vpstate & TMPFS_VNODE_DOOMED) == 0); - VI_LOCK(vp); if ((node->tn_type == VDIR && node->tn_dir.tn_parent == NULL) || (VN_IS_DOOMED(vp) && (lkflag & LK_NOWAIT) != 0)) { - VI_UNLOCK(vp); TMPFS_NODE_UNLOCK(node); error = ENOENT; vp = NULL; goto out; } if (VN_IS_DOOMED(vp)) { - VI_UNLOCK(vp); node->tn_vpstate |= TMPFS_VNODE_WRECLAIM; while ((node->tn_vpstate & TMPFS_VNODE_WRECLAIM) != 0) { msleep(&node->tn_vnode, TMPFS_NODE_MTX(node), @@ -619,8 +617,9 @@ loop: } goto loop; } + vs = vget_prep(vp); TMPFS_NODE_UNLOCK(node); - error = vget(vp, lkflag | LK_INTERLOCK, curthread); + error = vget_finish(vp, lkflag, vs); if (error == ENOENT) { TMPFS_NODE_LOCK(node); goto loop; Modified: projects/clang1100-import/sys/fs/tmpfs/tmpfs_vfsops.c ============================================================================== --- projects/clang1100-import/sys/fs/tmpfs/tmpfs_vfsops.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/fs/tmpfs/tmpfs_vfsops.c Sun Aug 16 18:24:48 2020 (r364279) @@ -130,8 +130,7 @@ tmpfs_update_mtime(struct mount *mp, bool lazy) * metadata changes now. */ if (!lazy || obj->generation != obj->cleangeneration) { - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, - curthread) != 0) + if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK) != 0) continue; tmpfs_check_mtime(vp); if (!lazy) Modified: projects/clang1100-import/sys/kern/uipc_mqueue.c ============================================================================== --- projects/clang1100-import/sys/kern/uipc_mqueue.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/kern/uipc_mqueue.c Sun Aug 16 18:24:48 2020 (r364279) @@ -754,7 +754,7 @@ mqfs_allocv(struct mount *mp, struct vnode **vpp, stru found: *vpp = vd->mv_vnode; sx_xunlock(&mqfs->mi_lock); - error = vget(*vpp, LK_RETRY | LK_EXCLUSIVE, curthread); + error = vget(*vpp, LK_RETRY | LK_EXCLUSIVE); vdrop(*vpp); return (error); } Modified: projects/clang1100-import/sys/kern/vfs_cache.c ============================================================================== --- projects/clang1100-import/sys/kern/vfs_cache.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/kern/vfs_cache.c Sun Aug 16 18:24:48 2020 (r364279) @@ -2427,11 +2427,11 @@ sys___getcwd(struct thread *td, struct __getcwd_args * if (buflen > MAXPATHLEN) buflen = MAXPATHLEN; - buf = malloc(buflen, M_TEMP, M_WAITOK); + buf = uma_zalloc(namei_zone, M_WAITOK); error = vn_getcwd(td, buf, &retbuf, &buflen); if (error == 0) error = copyout(retbuf, uap->buf, buflen); - free(buf, M_TEMP); + uma_zfree(namei_zone, buf); return (error); } @@ -2982,8 +2982,6 @@ DB_SHOW_COMMAND(vpath, db_show_vpath) } #endif - -extern uma_zone_t namei_zone; static bool __read_frequently cache_fast_lookup = true; SYSCTL_BOOL(_vfs, OID_AUTO, cache_fast_lookup, CTLFLAG_RW, Modified: projects/clang1100-import/sys/kern/vfs_default.c ============================================================================== --- projects/clang1100-import/sys/kern/vfs_default.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/kern/vfs_default.c Sun Aug 16 18:24:48 2020 (r364279) @@ -1348,7 +1348,7 @@ loop: VI_UNLOCK(vp); continue; } - if ((error = vget(vp, lockreq, td)) != 0) { + if ((error = vget(vp, lockreq)) != 0) { if (error == ENOENT) { MNT_VNODE_FOREACH_ALL_ABORT(mp, mvp); goto loop; Modified: projects/clang1100-import/sys/kern/vfs_lookup.c ============================================================================== --- projects/clang1100-import/sys/kern/vfs_lookup.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/kern/vfs_lookup.c Sun Aug 16 18:24:48 2020 (r364279) @@ -504,8 +504,7 @@ namei(struct nameidata *ndp) * Get a buffer for the name to be translated, and copy the * name into the buffer. */ - if ((cnp->cn_flags & HASBUF) == 0) - cnp->cn_pnbuf = uma_zalloc(namei_zone, M_WAITOK); + cnp->cn_pnbuf = uma_zalloc(namei_zone, M_WAITOK); if (ndp->ni_segflg == UIO_SYSSPACE) error = copystr(ndp->ni_dirp, cnp->cn_pnbuf, MAXPATHLEN, &ndp->ni_pathlen); Modified: projects/clang1100-import/sys/kern/vfs_subr.c ============================================================================== --- projects/clang1100-import/sys/kern/vfs_subr.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/kern/vfs_subr.c Sun Aug 16 18:24:48 2020 (r364279) @@ -2856,12 +2856,10 @@ vget_abort(struct vnode *vp, enum vgetstate vs) } int -vget(struct vnode *vp, int flags, struct thread *td) +vget(struct vnode *vp, int flags) { enum vgetstate vs; - MPASS(td == curthread); - vs = vget_prep(vp); return (vget_finish(vp, flags, vs)); } @@ -4684,7 +4682,7 @@ vfs_periodic_msync_inactive(struct mount *mp, int flag VI_UNLOCK(vp); continue; } - if (vget(vp, lkflags, td) == 0) { + if (vget(vp, lkflags) == 0) { obj = vp->v_object; if (obj != NULL && (vp->v_vflag & VV_NOSYNC) == 0) { VM_OBJECT_WLOCK(obj); Modified: projects/clang1100-import/sys/modules/nvd/Makefile ============================================================================== --- projects/clang1100-import/sys/modules/nvd/Makefile Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/modules/nvd/Makefile Sun Aug 16 18:24:48 2020 (r364279) @@ -3,6 +3,6 @@ .PATH: ${SRCTOP}/sys/dev/nvd KMOD= nvd -SRCS= nvd.c opt_geom.h device_if.h bus_if.h +SRCS= nvd.c opt_geom.h device_if.h bus_if.h pci_if.h .include <bsd.kmod.mk> Modified: projects/clang1100-import/sys/modules/usb/cp2112/Makefile ============================================================================== --- projects/clang1100-import/sys/modules/usb/cp2112/Makefile Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/modules/usb/cp2112/Makefile Sun Aug 16 18:24:48 2020 (r364279) @@ -31,7 +31,7 @@ S= ${SRCTOP}/sys KMOD= cp2112 SRCS= cp2112.c -SRCS+= opt_bus.h opt_usb.h +SRCS+= opt_bus.h opt_platform.h opt_usb.h SRCS+= device_if.h bus_if.h gpio_if.h iicbus_if.h usb_if.h usbdevs.h .include <bsd.kmod.mk> Modified: projects/clang1100-import/sys/netinet/sctp_input.c ============================================================================== --- projects/clang1100-import/sys/netinet/sctp_input.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/netinet/sctp_input.c Sun Aug 16 18:24:48 2020 (r364279) @@ -829,7 +829,6 @@ sctp_handle_abort(struct sctp_abort_chunk *abort, #ifdef SCTP_ASOCLOG_OF_TSNS sctp_print_out_track_log(stcb); #endif - SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_WAS_ABORTED); (void)sctp_free_assoc(stcb->sctp_ep, stcb, SCTP_NORMAL_PROC, SCTP_FROM_SCTP_INPUT + SCTP_LOC_8); SCTPDBG(SCTP_DEBUG_INPUT2, "sctp_handle_abort: finished\n"); @@ -1866,7 +1865,7 @@ sctp_process_cookie_existing(struct mbuf *m, int iphle /* send up all the data */ SCTP_TCB_SEND_LOCK(stcb); - sctp_report_all_outbound(stcb, 0, 1, SCTP_SO_LOCKED); + sctp_report_all_outbound(stcb, 0, SCTP_SO_LOCKED); for (i = 0; i < stcb->asoc.streamoutcnt; i++) { stcb->asoc.strmout[i].chunks_on_queues = 0; #if defined(SCTP_DETAILED_STR_STATS) Modified: projects/clang1100-import/sys/netinet/sctp_output.c ============================================================================== --- projects/clang1100-import/sys/netinet/sctp_output.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/netinet/sctp_output.c Sun Aug 16 18:24:48 2020 (r364279) @@ -13148,12 +13148,21 @@ skip_preblock: if (sinfo_flags & SCTP_UNORDERED) { SCTP_STAT_INCR(sctps_sends_with_unord); } + sp->processing = 1; TAILQ_INSERT_TAIL(&strm->outqueue, sp, next); stcb->asoc.ss_functions.sctp_ss_add_to_stream(stcb, asoc, strm, sp, 1); SCTP_TCB_SEND_UNLOCK(stcb); } else { SCTP_TCB_SEND_LOCK(stcb); sp = TAILQ_LAST(&strm->outqueue, sctp_streamhead); + if (sp->processing) { + SCTP_TCB_SEND_UNLOCK(stcb); + SCTP_LTRACE_ERR_RET(inp, stcb, net, SCTP_FROM_SCTP_OUTPUT, EINVAL); + error = EINVAL; + goto out; + } else { + sp->processing = 1; + } SCTP_TCB_SEND_UNLOCK(stcb); if (sp == NULL) { /* ???? Huh ??? last msg is gone */ @@ -13195,13 +13204,14 @@ skip_preblock: } /* Update the mbuf and count */ SCTP_TCB_SEND_LOCK(stcb); - if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) { + if ((stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) || + (stcb->asoc.state & SCTP_STATE_WAS_ABORTED)) { /* * we need to get out. Peer probably * aborted. */ sctp_m_freem(mm); - if (stcb->asoc.state & SCTP_PCB_FLAGS_WAS_ABORTED) { + if (stcb->asoc.state & SCTP_STATE_WAS_ABORTED) { SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ECONNRESET); error = ECONNRESET; } @@ -13405,7 +13415,8 @@ skip_preblock: } } SCTP_TCB_SEND_LOCK(stcb); - if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) { + if ((stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) || + (stcb->asoc.state & SCTP_STATE_WAS_ABORTED)) { SCTP_TCB_SEND_UNLOCK(stcb); goto out_unlocked; } @@ -13421,6 +13432,7 @@ skip_preblock: strm->last_msg_incomplete = 0; asoc->stream_locked = 0; } + sp->processing = 0; } else { SCTP_PRINTF("Huh no sp TSNH?\n"); strm->last_msg_incomplete = 0; Modified: projects/clang1100-import/sys/netinet/sctp_pcb.c ============================================================================== --- projects/clang1100-import/sys/netinet/sctp_pcb.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/netinet/sctp_pcb.c Sun Aug 16 18:24:48 2020 (r364279) @@ -4733,6 +4733,7 @@ sctp_free_assoc(struct sctp_inpcb *inp, struct sctp_tc /* there is no asoc, really TSNH :-0 */ return (1); } + SCTP_TCB_SEND_LOCK(stcb); if (stcb->asoc.alternate) { sctp_free_remote_addr(stcb->asoc.alternate); stcb->asoc.alternate = NULL; @@ -4767,6 +4768,7 @@ sctp_free_assoc(struct sctp_inpcb *inp, struct sctp_tc /* nope, reader or writer in the way */ sctp_timer_start(SCTP_TIMER_TYPE_ASOCKILL, inp, stcb, NULL); /* no asoc destroyed */ + SCTP_TCB_SEND_UNLOCK(stcb); SCTP_TCB_UNLOCK(stcb); #ifdef SCTP_LOG_CLOSING sctp_log_closing(inp, stcb, 8); @@ -4835,6 +4837,7 @@ sctp_free_assoc(struct sctp_inpcb *inp, struct sctp_tc SCTP_CLEAR_SUBSTATE(stcb, SCTP_STATE_IN_ACCEPT_QUEUE); sctp_timer_start(SCTP_TIMER_TYPE_ASOCKILL, inp, stcb, NULL); } + SCTP_TCB_SEND_UNLOCK(stcb); SCTP_TCB_UNLOCK(stcb); if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) || (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE)) @@ -4868,10 +4871,12 @@ sctp_free_assoc(struct sctp_inpcb *inp, struct sctp_tc if (from_inpcbfree == SCTP_NORMAL_PROC) { atomic_add_int(&stcb->asoc.refcnt, 1); + SCTP_TCB_SEND_UNLOCK(stcb); SCTP_TCB_UNLOCK(stcb); SCTP_INP_INFO_WLOCK(); SCTP_INP_WLOCK(inp); SCTP_TCB_LOCK(stcb); + SCTP_TCB_SEND_LOCK(stcb); } /* Double check the GONE flag */ if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) || @@ -4919,6 +4924,7 @@ sctp_free_assoc(struct sctp_inpcb *inp, struct sctp_tc SCTP_INP_INFO_WUNLOCK(); SCTP_INP_WUNLOCK(inp); } + SCTP_TCB_SEND_UNLOCK(stcb); SCTP_TCB_UNLOCK(stcb); return (0); } @@ -4950,7 +4956,6 @@ sctp_free_assoc(struct sctp_inpcb *inp, struct sctp_tc * in case. */ /* anything on the wheel needs to be removed */ - SCTP_TCB_SEND_LOCK(stcb); for (i = 0; i < asoc->streamoutcnt; i++) { struct sctp_stream_out *outs; @@ -4981,7 +4986,6 @@ sctp_free_assoc(struct sctp_inpcb *inp, struct sctp_tc sctp_free_a_strmoq(stcb, sp, SCTP_SO_LOCKED); } } - SCTP_TCB_SEND_UNLOCK(stcb); /* sa_ignore FREED_MEMORY */ TAILQ_FOREACH_SAFE(strrst, &asoc->resetHead, next_resp, nstrrst) { TAILQ_REMOVE(&asoc->resetHead, strrst, next_resp); @@ -5183,6 +5187,7 @@ sctp_free_assoc(struct sctp_inpcb *inp, struct sctp_tc /* Insert new items here :> */ /* Get rid of LOCK */ + SCTP_TCB_SEND_UNLOCK(stcb); SCTP_TCB_UNLOCK(stcb); SCTP_TCB_LOCK_DESTROY(stcb); SCTP_TCB_SEND_LOCK_DESTROY(stcb); Modified: projects/clang1100-import/sys/netinet/sctp_structs.h ============================================================================== --- projects/clang1100-import/sys/netinet/sctp_structs.h Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/netinet/sctp_structs.h Sun Aug 16 18:24:48 2020 (r364279) @@ -534,6 +534,7 @@ struct sctp_stream_queue_pending { uint8_t sender_all_done; uint8_t put_last_out; uint8_t discard_rest; + uint8_t processing; }; /* Modified: projects/clang1100-import/sys/netinet/sctputil.c ============================================================================== --- projects/clang1100-import/sys/netinet/sctputil.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/netinet/sctputil.c Sun Aug 16 18:24:48 2020 (r364279) @@ -4239,7 +4239,7 @@ sctp_ulp_notify(uint32_t notification, struct sctp_tcb } void -sctp_report_all_outbound(struct sctp_tcb *stcb, uint16_t error, int holds_lock, int so_locked) +sctp_report_all_outbound(struct sctp_tcb *stcb, uint16_t error, int so_locked) { struct sctp_association *asoc; struct sctp_stream_out *outs; @@ -4261,9 +4261,6 @@ sctp_report_all_outbound(struct sctp_tcb *stcb, uint16 return; } /* now through all the gunk freeing chunks */ - if (holds_lock == 0) { - SCTP_TCB_SEND_LOCK(stcb); - } /* sent queue SHOULD be empty */ TAILQ_FOREACH_SAFE(chk, &asoc->sent_queue, sctp_next, nchk) { TAILQ_REMOVE(&asoc->sent_queue, chk, sctp_next); @@ -4340,10 +4337,6 @@ sctp_report_all_outbound(struct sctp_tcb *stcb, uint16 /* sa_ignore FREED_MEMORY */ } } - - if (holds_lock == 0) { - SCTP_TCB_SEND_UNLOCK(stcb); - } } void @@ -4363,8 +4356,11 @@ sctp_abort_notification(struct sctp_tcb *stcb, uint8_t (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET)) { return; } + SCTP_TCB_SEND_LOCK(stcb); + SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_WAS_ABORTED); /* Tell them we lost the asoc */ - sctp_report_all_outbound(stcb, error, 0, so_locked); + sctp_report_all_outbound(stcb, error, so_locked); + SCTP_TCB_SEND_UNLOCK(stcb); if (from_peer) { sctp_ulp_notify(SCTP_NOTIFY_ASSOC_REM_ABORTED, stcb, error, abort, so_locked); } else { @@ -4393,7 +4389,6 @@ sctp_abort_association(struct sctp_inpcb *inp, struct if (stcb != NULL) { /* We have a TCB to abort, send notification too */ sctp_abort_notification(stcb, 0, 0, NULL, SCTP_SO_NOT_LOCKED); - SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_WAS_ABORTED); /* Ok, now lets free it */ SCTP_STAT_INCR_COUNTER32(sctps_aborted); if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) || @@ -4482,8 +4477,6 @@ sctp_abort_an_association(struct sctp_inpcb *inp, stru } } return; - } else { - SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_WAS_ABORTED); } /* notify the peer */ sctp_send_abort_tcb(stcb, op_err, so_locked); Modified: projects/clang1100-import/sys/netinet/sctputil.h ============================================================================== --- projects/clang1100-import/sys/netinet/sctputil.h Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/netinet/sctputil.h Sun Aug 16 18:24:48 2020 (r364279) @@ -164,7 +164,7 @@ void sctp_stop_timers_for_shutdown(struct sctp_tcb *); /* Stop all timers for association and remote addresses. */ void sctp_stop_association_timers(struct sctp_tcb *, bool); -void sctp_report_all_outbound(struct sctp_tcb *, uint16_t, int, int); +void sctp_report_all_outbound(struct sctp_tcb *, uint16_t, int); int sctp_expand_mapping_array(struct sctp_association *, uint32_t); Modified: projects/clang1100-import/sys/sys/namei.h ============================================================================== --- projects/clang1100-import/sys/sys/namei.h Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/sys/namei.h Sun Aug 16 18:24:48 2020 (r364279) @@ -149,21 +149,21 @@ int cache_fplookup(struct nameidata *ndp, enum cache_f * buffer and for vrele'ing ni_startdir. */ #define RDONLY 0x00000200 /* lookup with read-only semantics */ -#define HASBUF 0x00000400 /* has allocated pathname buffer */ -#define SAVENAME 0x00000800 /* save pathname buffer */ -#define SAVESTART 0x00001000 /* save starting directory */ -#define ISWHITEOUT 0x00002000 /* found whiteout */ -#define DOWHITEOUT 0x00004000 /* do whiteouts */ -#define WILLBEDIR 0x00008000 /* new files will be dirs; allow trailing / */ -#define ISOPEN 0x00010000 /* caller is opening; return a real vnode. */ -#define NOCROSSMOUNT 0x00020000 /* do not cross mount points */ -#define NOMACCHECK 0x00040000 /* do not perform MAC checks */ -#define AUDITVNODE1 0x00080000 /* audit the looked up vnode information */ -#define AUDITVNODE2 0x00100000 /* audit the looked up vnode information */ -#define NOCAPCHECK 0x00200000 /* do not perform capability checks */ +#define SAVENAME 0x00000400 /* save pathname buffer */ +#define SAVESTART 0x00000800 /* save starting directory */ +#define ISWHITEOUT 0x00001000 /* found whiteout */ +#define DOWHITEOUT 0x00002000 /* do whiteouts */ +#define WILLBEDIR 0x00004000 /* new files will be dirs; allow trailing / */ +#define ISOPEN 0x00008000 /* caller is opening; return a real vnode. */ +#define NOCROSSMOUNT 0x00010000 /* do not cross mount points */ +#define NOMACCHECK 0x00020000 /* do not perform MAC checks */ +#define AUDITVNODE1 0x00040000 /* audit the looked up vnode information */ +#define AUDITVNODE2 0x00080000 /* audit the looked up vnode information */ +#define NOCAPCHECK 0x00100000 /* do not perform capability checks */ /* UNUSED 0x00400000 */ +/* UNUSED 0x00200000 */ /* UNUSED 0x00800000 */ -/* UNUSED 0x01000000 */ +#define HASBUF 0x01000000 /* has allocated pathname buffer */ #define NOEXECCHECK 0x02000000 /* do not perform exec check on dir */ #define MAKEENTRY 0x04000000 /* entry is to be added to name cache */ #define ISSYMLINK 0x08000000 /* symlink needs interpretation */ @@ -176,7 +176,8 @@ int cache_fplookup(struct nameidata *ndp, enum cache_f * Flags which must not be passed in by callers. */ #define NAMEI_INTERNAL_FLAGS \ - (NOEXECCHECK | MAKEENTRY | ISSYMLINK | ISLASTCN | ISDOTDOT | TRAILINGSLASH) + (HASBUF | NOEXECCHECK | MAKEENTRY | ISSYMLINK | ISLASTCN | ISDOTDOT | \ + TRAILINGSLASH) /* * Namei results flags Modified: projects/clang1100-import/sys/sys/param.h ============================================================================== --- projects/clang1100-import/sys/sys/param.h Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/sys/param.h Sun Aug 16 18:24:48 2020 (r364279) @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1300108 /* Master, propagated to newvers */ +#define __FreeBSD_version 1300109 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, Modified: projects/clang1100-import/sys/sys/vnode.h ============================================================================== --- projects/clang1100-import/sys/sys/vnode.h Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/sys/vnode.h Sun Aug 16 18:24:48 2020 (r364279) @@ -680,7 +680,7 @@ void vlazy(struct vnode *); void vdrop(struct vnode *); void vdropl(struct vnode *); int vflush(struct mount *mp, int rootrefs, int flags, struct thread *td); -int vget(struct vnode *vp, int flags, struct thread *td); +int vget(struct vnode *vp, int flags); enum vgetstate vget_prep_smr(struct vnode *vp); enum vgetstate vget_prep(struct vnode *vp); int vget_finish(struct vnode *vp, int flags, enum vgetstate vs); Modified: projects/clang1100-import/sys/ufs/ffs/ffs_alloc.c ============================================================================== --- projects/clang1100-import/sys/ufs/ffs/ffs_alloc.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/ufs/ffs/ffs_alloc.c Sun Aug 16 18:24:48 2020 (r364279) @@ -3463,7 +3463,7 @@ sysctl_ffs_fsck(SYSCTL_HANDLER_ARGS) */ pwd = pwd_hold(td); dvp = pwd->pwd_cdir; - if ((error = vget(dvp, LK_EXCLUSIVE, td)) != 0) { + if ((error = vget(dvp, LK_EXCLUSIVE)) != 0) { vput(fdvp); pwd_drop(pwd); break; Modified: projects/clang1100-import/sys/ufs/ffs/ffs_softdep.c ============================================================================== --- projects/clang1100-import/sys/ufs/ffs/ffs_softdep.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/ufs/ffs/ffs_softdep.c Sun Aug 16 18:24:48 2020 (r364279) @@ -13624,8 +13624,7 @@ softdep_request_cleanup_flush(mp, ump) VI_UNLOCK(lvp); continue; } - if (vget(lvp, LK_EXCLUSIVE | LK_INTERLOCK | LK_NOWAIT, - td) != 0) { + if (vget(lvp, LK_EXCLUSIVE | LK_INTERLOCK | LK_NOWAIT) != 0) { failed_vnode = 1; continue; } Modified: projects/clang1100-import/sys/ufs/ffs/ffs_vfsops.c ============================================================================== --- projects/clang1100-import/sys/ufs/ffs/ffs_vfsops.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/ufs/ffs/ffs_vfsops.c Sun Aug 16 18:24:48 2020 (r364279) @@ -974,7 +974,7 @@ loop: /* * Step 4: invalidate all cached file data. */ - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, td)) { + if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK)) { MNT_VNODE_FOREACH_ALL_ABORT(mp, mvp); goto loop; } @@ -1758,8 +1758,7 @@ ffs_sync_lazy(mp) VI_UNLOCK(vp); continue; } - if ((error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK, - td)) != 0) + if ((error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK)) != 0) continue; #ifdef QUOTA qsyncvp(vp); @@ -1856,7 +1855,7 @@ loop: VI_UNLOCK(vp); continue; } - if ((error = vget(vp, lockreq, td)) != 0) { + if ((error = vget(vp, lockreq)) != 0) { if (error == ENOENT || error == ENOLCK) { MNT_VNODE_FOREACH_ALL_ABORT(mp, mvp); goto loop; Modified: projects/clang1100-import/sys/ufs/ufs/ufs_quota.c ============================================================================== --- projects/clang1100-import/sys/ufs/ufs/ufs_quota.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/ufs/ufs/ufs_quota.c Sun Aug 16 18:24:48 2020 (r364279) @@ -613,7 +613,7 @@ quotaon(struct thread *td, struct mount *mp, int type, */ again: MNT_VNODE_FOREACH_ALL(vp, mp, mvp) { - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, td)) { + if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK)) { MNT_VNODE_FOREACH_ALL_ABORT(mp, mvp); goto again; } @@ -680,7 +680,7 @@ again: VI_UNLOCK(vp); continue; } - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, td)) { + if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK)) { MNT_VNODE_FOREACH_ALL_ABORT(mp, mvp); goto again; } @@ -1064,7 +1064,6 @@ int qsync(struct mount *mp) { struct ufsmount *ump = VFSTOUFS(mp); - struct thread *td = curthread; /* XXX */ struct vnode *vp, *mvp; struct dquot *dq; int i, error; @@ -1088,7 +1087,7 @@ again: VI_UNLOCK(vp); continue; } - error = vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, td); + error = vget(vp, LK_EXCLUSIVE | LK_INTERLOCK); if (error) { if (error == ENOENT) { MNT_VNODE_FOREACH_ALL_ABORT(mp, mvp); Modified: projects/clang1100-import/sys/vm/vm_fault.c ============================================================================== --- projects/clang1100-import/sys/vm/vm_fault.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/vm/vm_fault.c Sun Aug 16 18:24:48 2020 (r364279) @@ -673,7 +673,7 @@ vm_fault_lock_vnode(struct faultstate *fs, bool objloc * paging-in-progress count incremented. Otherwise, we could * deadlock. */ - error = vget(vp, locked | LK_CANRECURSE | LK_NOWAIT, curthread); + error = vget(vp, locked | LK_CANRECURSE | LK_NOWAIT); if (error == 0) { fs->vp = vp; return (KERN_SUCCESS); @@ -684,7 +684,7 @@ vm_fault_lock_vnode(struct faultstate *fs, bool objloc unlock_and_deallocate(fs); else fault_deallocate(fs); - error = vget(vp, locked | LK_RETRY | LK_CANRECURSE, curthread); + error = vget(vp, locked | LK_RETRY | LK_CANRECURSE); vdrop(vp); fs->vp = vp; KASSERT(error == 0, ("vm_fault: vget failed %d", error)); Modified: projects/clang1100-import/sys/vm/vm_mmap.c ============================================================================== --- projects/clang1100-import/sys/vm/vm_mmap.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/vm/vm_mmap.c Sun Aug 16 18:24:48 2020 (r364279) @@ -1284,7 +1284,7 @@ vm_mmap_vnode(struct thread *td, vm_size_t objsize, cred = td->td_ucred; writex = (*maxprotp & VM_PROT_WRITE) != 0 && (*flagsp & MAP_SHARED) != 0; - if ((error = vget(vp, LK_SHARED, td)) != 0) + if ((error = vget(vp, LK_SHARED)) != 0) return (error); AUDIT_ARG_VNODE1(vp); foff = *foffp; @@ -1305,7 +1305,7 @@ vm_mmap_vnode(struct thread *td, vm_size_t objsize, * Bypass filesystems obey the mpsafety of the * underlying fs. Tmpfs never bypasses. */ - error = vget(vp, LK_SHARED, td); + error = vget(vp, LK_SHARED); if (error != 0) return (error); } Modified: projects/clang1100-import/sys/vm/vm_pageout.c ============================================================================== --- projects/clang1100-import/sys/vm/vm_pageout.c Sun Aug 16 18:23:52 2020 (r364278) +++ projects/clang1100-import/sys/vm/vm_pageout.c Sun Aug 16 18:24:48 2020 (r364279) @@ -643,7 +643,7 @@ vm_pageout_clean(vm_page_t m, int *numpagedout) VM_OBJECT_WUNLOCK(object); lockmode = MNT_SHARED_WRITES(vp->v_mount) ? LK_SHARED : LK_EXCLUSIVE; - if (vget(vp, lockmode | LK_TIMELOCK, curthread)) { + if (vget(vp, lockmode | LK_TIMELOCK)) { vp = NULL; error = EDEADLK; goto unlock_mp;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202008161824.07GIOmaM078113>