From owner-cvs-src@FreeBSD.ORG Tue Mar 13 01:50:27 2007 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C518D16A400; Tue, 13 Mar 2007 01:50:27 +0000 (UTC) (envelope-from tegge@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id B6C4913C44C; Tue, 13 Mar 2007 01:50:27 +0000 (UTC) (envelope-from tegge@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l2D1oR4Y087833; Tue, 13 Mar 2007 01:50:27 GMT (envelope-from tegge@repoman.freebsd.org) Received: (from tegge@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l2D1oRrF087832; Tue, 13 Mar 2007 01:50:27 GMT (envelope-from tegge) Message-Id: <200703130150.l2D1oRrF087832@repoman.freebsd.org> From: Tor Egge Date: Tue, 13 Mar 2007 01:50:27 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/coda coda_vnops.c src/sys/fs/cd9660 cd9660_vfsops.c src/sys/fs/devfs devfs_vnops.c src/sys/fs/fdescfs fdesc_vnops.c src/sys/fs/hpfs hpfs_vfsops.c src/sys/fs/msdosfs msdosfs_denode.c src/sys/fs/ntfs ntfs_vfsops.c src/sys/fs/nullfs ... X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Mar 2007 01:50:27 -0000 tegge 2007-03-13 01:50:27 UTC FreeBSD src repository Modified files: sys/coda coda_vnops.c sys/fs/cd9660 cd9660_vfsops.c sys/fs/devfs devfs_vnops.c sys/fs/fdescfs fdesc_vnops.c sys/fs/hpfs hpfs_vfsops.c sys/fs/msdosfs msdosfs_denode.c sys/fs/ntfs ntfs_vfsops.c sys/fs/nullfs null_subr.c sys/fs/nwfs nwfs_node.c sys/fs/portalfs portal_vfsops.c portal_vnops.c sys/fs/pseudofs pseudofs_vncache.c sys/fs/smbfs smbfs_node.c sys/fs/udf udf_vfsops.c sys/fs/umapfs umap_subr.c sys/fs/unionfs union_subr.c sys/gnu/fs/ext2fs ext2_vfsops.c sys/gnu/fs/reiserfs reiserfs_inode.c sys/gnu/fs/xfs/FreeBSD xfs_freebsd_iget.c sys/kern uipc_mqueue.c vfs_hash.c vfs_subr.c sys/nfsclient nfs_node.c sys/sys vnode.h sys/ufs/ffs ffs_vfsops.c Log: Make insmntque() externally visibile and allow it to fail (e.g. during late stages of unmount). On failure, the vnode is recycled. Add insmntque1(), to allow for file system specific cleanup when recycling vnode on failure. Change getnewvnode() to no longer call insmntque(). Previously, embryonic vnodes were put onto the list of vnode belonging to a file system, which is unsafe for a file system marked MPSAFE. Change vfs_hash_insert() to no longer lock the vnode. The caller now has that responsibility. Change most file systems to lock the vnode and call insmntque() or insmntque1() after a new vnode has been sufficiently setup. Handle failed insmntque*() calls by propagating errors to callers, possibly after some file system specific cleanup. Approved by: re (kensmith) Reviewed by: kib In collaboration with: kib Revision Changes Path 1.70 +3 -0 src/sys/coda/coda_vnops.c 1.150 +11 -2 src/sys/fs/cd9660/cd9660_vfsops.c 1.141 +20 -3 src/sys/fs/devfs/devfs_vnops.c 1.103 +7 -0 src/sys/fs/fdescfs/fdesc_vnops.c 1.60 +10 -2 src/sys/fs/hpfs/hpfs_vfsops.c 1.93 +10 -1 src/sys/fs/msdosfs/msdosfs_denode.c 1.87 +7 -0 src/sys/fs/ntfs/ntfs_vfsops.c 1.51 +15 -0 src/sys/fs/nullfs/null_subr.c 1.39 +6 -0 src/sys/fs/nwfs/nwfs_node.c 1.60 +7 -0 src/sys/fs/portalfs/portal_vfsops.c 1.73 +5 -0 src/sys/fs/portalfs/portal_vnops.c 1.34 +8 -2 src/sys/fs/pseudofs/pseudofs_vncache.c 1.32 +5 -0 src/sys/fs/smbfs/smbfs_node.c 1.48 +7 -1 src/sys/fs/udf/udf_vfsops.c 1.35 +6 -0 src/sys/fs/umapfs/umap_subr.c 1.90 +5 -0 src/sys/fs/unionfs/union_subr.c 1.162 +11 -2 src/sys/gnu/fs/ext2fs/ext2_vfsops.c 1.3 +8 -0 src/sys/gnu/fs/reiserfs/reiserfs_inode.c 1.2 +5 -0 src/sys/gnu/fs/xfs/FreeBSD/xfs_freebsd_iget.c 1.20 +6 -1 src/sys/kern/uipc_mqueue.c 1.13 +0 -1 src/sys/kern/vfs_hash.c 1.693 +40 -5 src/sys/kern/vfs_subr.c 1.86 +11 -0 src/sys/nfsclient/nfs_node.c 1.322 +3 -0 src/sys/sys/vnode.h 1.326 +10 -1 src/sys/ufs/ffs/ffs_vfsops.c