Received: by mail.netbsd.org (Postfix, from userid 605) id 0E51984DA2; Thu, 23 Apr 2020 21:47:11 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mail.netbsd.org (Postfix) with ESMTP id 7EC2784DA1 for ; Thu, 23 Apr 2020 21:47:10 +0000 (UTC) X-Virus-Scanned: amavisd-new at netbsd.org Received: from mail.netbsd.org ([IPv6:::1]) by localhost (mail.netbsd.org [IPv6:::1]) (amavisd-new, port 10025) with ESMTP id 7c5yNjIhQhLH for ; Thu, 23 Apr 2020 21:47:10 +0000 (UTC) Received: from cvs.NetBSD.org (ivanova.netbsd.org [199.233.217.197]) by mail.netbsd.org (Postfix) with ESMTP id E217084D27 for ; Thu, 23 Apr 2020 21:47:09 +0000 (UTC) Received: by cvs.NetBSD.org (Postfix, from userid 500) id DB5FBFB27; Thu, 23 Apr 2020 21:47:09 +0000 (UTC) Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" MIME-Version: 1.0 Date: Thu, 23 Apr 2020 21:47:09 +0000 From: "Andrew Doran" Subject: CVS commit: src/sys To: source-changes@NetBSD.org X-Mailer: log_accum Message-Id: <20200423214709.DB5FBFB27@cvs.NetBSD.org> Sender: source-changes-owner@NetBSD.org List-Id: source-changes.NetBSD.org Precedence: bulk Reply-To: source-changes-d@NetBSD.org Mail-Reply-To: "Andrew Doran" Mail-Followup-To: source-changes-d@NetBSD.org List-Unsubscribe: Module Name: src Committed By: ad Date: Thu Apr 23 21:47:09 UTC 2020 Modified Files: src/sys/fs/adosfs: advnops.c src/sys/fs/cd9660: cd9660_vnops.c src/sys/fs/efs: efs_vnops.c src/sys/fs/filecorefs: filecore_vnops.c src/sys/fs/hfs: hfs_vnops.c src/sys/fs/msdosfs: msdosfs_denode.c msdosfs_vnops.c src/sys/fs/nilfs: nilfs_vnops.c src/sys/fs/puffs: puffs_vnops.c src/sys/fs/sysvbfs: sysvbfs_vnops.c src/sys/fs/tmpfs: tmpfs_subr.c tmpfs_vnops.c src/sys/fs/udf: udf_allocation.c udf_vnops.c src/sys/fs/v7fs: v7fs_vnops.c src/sys/nfs: nfs_bio.c src/sys/rump/librump/rumpvfs: rumpfs.c src/sys/ufs/chfs: chfs_subr.c chfs_vnops.c src/sys/ufs/ext2fs: ext2fs_inode.c ext2fs_readwrite.c src/sys/ufs/ffs: ffs_inode.c src/sys/ufs/lfs: lfs_inode.c ulfs_readwrite.c src/sys/ufs/ufs: ufs_readwrite.c src/sys/uvm: uvm_bio.c uvm_extern.h Log Message: PR kern/54759 (vm.ubc_direct deadlock when read()/write() into mapping of itself) - Add new flag UBC_ISMAPPED which tells ubc_uiomove() the object is mmap()ed somewhere. Use it to decide whether to do direct-mapped copy, rather than poking around directly in the vnode in ubc_uiomove(), which is ugly and doesn't work for tmpfs. It would be nicer to contain all this in UVM but the filesystem provides the needed locking here (VV_MAPPED) and to reinvent that would suck more. - Rename UBC_UNMAP_FLAG() to UBC_VNODE_FLAGS(). Pass in UBC_ISMAPPED where appropriate. To generate a diff of this commit: cvs rdiff -u -r1.52 -r1.53 src/sys/fs/adosfs/advnops.c cvs rdiff -u -r1.55 -r1.56 src/sys/fs/cd9660/cd9660_vnops.c cvs rdiff -u -r1.38 -r1.39 src/sys/fs/efs/efs_vnops.c cvs rdiff -u -r1.44 -r1.45 src/sys/fs/filecorefs/filecore_vnops.c cvs rdiff -u -r1.34 -r1.35 src/sys/fs/hfs/hfs_vnops.c cvs rdiff -u -r1.58 -r1.59 src/sys/fs/msdosfs/msdosfs_denode.c cvs rdiff -u -r1.101 -r1.102 src/sys/fs/msdosfs/msdosfs_vnops.c cvs rdiff -u -r1.39 -r1.40 src/sys/fs/nilfs/nilfs_vnops.c cvs rdiff -u -r1.214 -r1.215 src/sys/fs/puffs/puffs_vnops.c cvs rdiff -u -r1.64 -r1.65 src/sys/fs/sysvbfs/sysvbfs_vnops.c cvs rdiff -u -r1.108 -r1.109 src/sys/fs/tmpfs/tmpfs_subr.c cvs rdiff -u -r1.135 -r1.136 src/sys/fs/tmpfs/tmpfs_vnops.c cvs rdiff -u -r1.40 -r1.41 src/sys/fs/udf/udf_allocation.c cvs rdiff -u -r1.111 -r1.112 src/sys/fs/udf/udf_vnops.c cvs rdiff -u -r1.28 -r1.29 src/sys/fs/v7fs/v7fs_vnops.c cvs rdiff -u -r1.195 -r1.196 src/sys/nfs/nfs_bio.c cvs rdiff -u -r1.156 -r1.157 src/sys/rump/librump/rumpvfs/rumpfs.c cvs rdiff -u -r1.11 -r1.12 src/sys/ufs/chfs/chfs_subr.c cvs rdiff -u -r1.37 -r1.38 src/sys/ufs/chfs/chfs_vnops.c cvs rdiff -u -r1.88 -r1.89 src/sys/ufs/ext2fs/ext2fs_inode.c cvs rdiff -u -r1.76 -r1.77 src/sys/ufs/ext2fs/ext2fs_readwrite.c cvs rdiff -u -r1.127 -r1.128 src/sys/ufs/ffs/ffs_inode.c cvs rdiff -u -r1.159 -r1.160 src/sys/ufs/lfs/lfs_inode.c cvs rdiff -u -r1.26 -r1.27 src/sys/ufs/lfs/ulfs_readwrite.c cvs rdiff -u -r1.125 -r1.126 src/sys/ufs/ufs/ufs_readwrite.c cvs rdiff -u -r1.109 -r1.110 src/sys/uvm/uvm_bio.c cvs rdiff -u -r1.223 -r1.224 src/sys/uvm/uvm_extern.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.