From owner-p4-projects@FreeBSD.ORG Tue Sep 26 23:27:06 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D964416A51E; Tue, 26 Sep 2006 23:27:05 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4371116A412 for ; Tue, 26 Sep 2006 23:27:04 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4900643D46 for ; Tue, 26 Sep 2006 23:26:59 +0000 (GMT) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k8QNQxxR098039 for ; Tue, 26 Sep 2006 23:26:59 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k8QNQwpW098036 for perforce@freebsd.org; Tue, 26 Sep 2006 23:26:58 GMT (envelope-from mjacob@freebsd.org) Date: Tue, 26 Sep 2006 23:26:58 GMT Message-Id: <200609262326.k8QNQwpW098036@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Cc: Subject: PERFORCE change 106749 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Sep 2006 23:27:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=106749 Change 106749 by mjacob@newisp on 2006/09/26 23:26:45 IFC Affected files ... .. //depot/projects/newisp/amd64/conf/GENERIC#2 integrate .. //depot/projects/newisp/boot/pc98/boot2/inode.h#2 integrate .. //depot/projects/newisp/conf/NOTES#5 integrate .. //depot/projects/newisp/conf/options#3 integrate .. //depot/projects/newisp/dev/ipmi/ipmi.c#3 integrate .. //depot/projects/newisp/dev/isp/isp_freebsd.c#10 integrate .. //depot/projects/newisp/dev/isp/isp_freebsd.h#6 integrate .. //depot/projects/newisp/dev/smbus/smb.c#3 integrate .. //depot/projects/newisp/fs/devfs/devfs_vfsops.c#3 integrate .. //depot/projects/newisp/fs/hpfs/hpfs_vfsops.c#2 integrate .. //depot/projects/newisp/fs/msdosfs/msdosfs_vfsops.c#2 integrate .. //depot/projects/newisp/fs/ntfs/ntfs_vfsops.c#2 integrate .. //depot/projects/newisp/fs/nullfs/null_vfsops.c#2 integrate .. //depot/projects/newisp/fs/nwfs/nwfs_vfsops.c#2 integrate .. //depot/projects/newisp/fs/portalfs/portal_vfsops.c#2 integrate .. //depot/projects/newisp/fs/smbfs/smbfs_vfsops.c#2 integrate .. //depot/projects/newisp/fs/udf/udf_vfsops.c#2 integrate .. //depot/projects/newisp/fs/umapfs/umap_vfsops.c#2 integrate .. //depot/projects/newisp/fs/unionfs/union_vfsops.c#2 integrate .. //depot/projects/newisp/gnu/fs/ext2fs/ext2_inode.c#2 integrate .. //depot/projects/newisp/gnu/fs/ext2fs/ext2_vfsops.c#2 integrate .. //depot/projects/newisp/gnu/fs/reiserfs/reiserfs_vfsops.c#2 integrate .. //depot/projects/newisp/i386/conf/GENERIC#2 integrate .. //depot/projects/newisp/ia64/conf/GENERIC#2 integrate .. //depot/projects/newisp/isofs/cd9660/cd9660_vfsops.c#2 integrate .. //depot/projects/newisp/kern/uipc_mqueue.c#2 integrate .. //depot/projects/newisp/kern/vfs_cluster.c#2 integrate .. //depot/projects/newisp/kern/vfs_export.c#2 integrate .. //depot/projects/newisp/kern/vfs_mount.c#3 integrate .. //depot/projects/newisp/kern/vfs_subr.c#3 integrate .. //depot/projects/newisp/kern/vfs_syscalls.c#4 integrate .. //depot/projects/newisp/modules/wlan/Makefile#2 integrate .. //depot/projects/newisp/net80211/ieee80211_ioctl.c#2 integrate .. //depot/projects/newisp/nfsclient/nfs_vfsops.c#3 integrate .. //depot/projects/newisp/nfsclient/nfs_vnops.c#3 integrate .. //depot/projects/newisp/pc98/conf/GENERIC#2 integrate .. //depot/projects/newisp/powerpc/conf/GENERIC#2 integrate .. //depot/projects/newisp/sparc64/conf/GENERIC#2 integrate .. //depot/projects/newisp/sys/copyright.h#3 integrate .. //depot/projects/newisp/sys/mount.h#3 integrate .. //depot/projects/newisp/ufs/ffs/ffs_snapshot.c#2 integrate .. //depot/projects/newisp/ufs/ffs/ffs_softdep.c#3 integrate .. //depot/projects/newisp/ufs/ffs/ffs_vfsops.c#2 integrate .. //depot/projects/newisp/ufs/ufs/inode.h#2 integrate .. //depot/projects/newisp/ufs/ufs/ufs_quota.c#3 integrate Differences ... ==== //depot/projects/newisp/amd64/conf/GENERIC#2 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.464 2006/07/09 16:39:21 mjacob Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.465 2006/09/26 12:36:33 ru Exp $ cpu HAMMER ident GENERIC @@ -49,6 +49,7 @@ options COMPAT_IA32 # Compatible with i386 binaries options COMPAT_FREEBSD4 # Compatible with FreeBSD4 options COMPAT_FREEBSD5 # Compatible with FreeBSD5 +options COMPAT_FREEBSD6 # Compatible with FreeBSD6 options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI options KTRACE # ktrace(1) support options SYSVSHM # SYSV-style shared memory ==== //depot/projects/newisp/boot/pc98/boot2/inode.h#2 (text+ko) ==== @@ -33,7 +33,7 @@ * * @(#)inode.h 8.9 (Berkeley) 5/14/95 * %FreeBSD: src/sys/ufs/ufs/inode.h,v 1.28.2.2 2001/09/29 12:52:52 iedowse Exp % - * $FreeBSD: src/sys/boot/pc98/boot2/inode.h,v 1.4 2004/06/16 18:21:22 phk Exp $ + * $FreeBSD: src/sys/boot/pc98/boot2/inode.h,v 1.5 2006/09/26 04:15:57 tegge Exp $ */ #ifndef _UFS_UFS_INODE_H_ @@ -147,7 +147,7 @@ /* Determine if soft dependencies are being done */ #define DOINGSOFTDEP(vp) ((vp)->v_mount->mnt_flag & MNT_SOFTDEP) -#define DOINGASYNC(vp) ((vp)->v_mount->mnt_flag & MNT_ASYNC) +#define DOINGASYNC(vp) ((vp)->v_mount->mnt_kern_flag & MNTK_ASYNC) /* This overlays the fid structure (see mount.h). */ struct ufid { ==== //depot/projects/newisp/conf/NOTES#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1382 2006/09/25 11:40:14 scottl Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1383 2006/09/26 12:36:33 ru Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -273,6 +273,9 @@ # Enable FreeBSD5 compatibility syscalls options COMPAT_FREEBSD5 +# Enable FreeBSD6 compatibility syscalls +options COMPAT_FREEBSD6 + # # These three options provide support for System V Interface # Definition-style interprocess communication, in the form of shared ==== //depot/projects/newisp/conf/options#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.558 2006/09/20 13:33:40 rwatson Exp $ +# $FreeBSD: src/sys/conf/options,v 1.559 2006/09/26 12:36:33 ru Exp $ # # On the handling of kernel options # @@ -67,6 +67,7 @@ COMPAT_43TTY opt_compat.h COMPAT_FREEBSD4 opt_compat.h COMPAT_FREEBSD5 opt_compat.h +COMPAT_FREEBSD6 opt_compat.h COMPILING_LINT opt_global.h CY_PCI_FASTINTR DIRECTIO ==== //depot/projects/newisp/dev/ipmi/ipmi.c#3 (text) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ipmi/ipmi.c,v 1.4 2006/09/22 22:11:29 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ipmi/ipmi.c,v 1.5 2006/09/26 15:48:13 jhb Exp $"); #include #include @@ -949,9 +949,11 @@ int count; int i; - devclass_get_devices(ipmi_devclass, &devs, &count); + if (devclass_get_devices(ipmi_devclass, &devs, &count) != 0) + return; for (i = 0; i < count; i++) device_delete_child(device_get_parent(devs[i]), devs[i]); + free(devs, M_TEMP); } SYSUNINIT(ipmi_unload, SI_SUB_DRIVERS, SI_ORDER_FIRST, ipmi_unload, NULL); ==== //depot/projects/newisp/dev/isp/isp_freebsd.c#10 (text+ko) ==== @@ -29,7 +29,7 @@ * Platform (FreeBSD) dependent common attachment code for Qlogic adapters. */ #include -__FBSDID("$FreeBSD: src/sys/dev/isp/isp_freebsd.c,v 1.122 2006/09/01 04:57:14 mjacob Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/isp/isp_freebsd.c,v 1.123 2006/09/26 04:59:52 mjacob Exp $"); #include #include #include ==== //depot/projects/newisp/dev/isp/isp_freebsd.h#6 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/isp/isp_freebsd.h,v 1.92 2006/09/01 05:03:42 mjacob Exp $ */ +/* $FreeBSD: src/sys/dev/isp/isp_freebsd.h,v 1.93 2006/09/26 04:59:52 mjacob Exp $ */ /*- * Qlogic ISP SCSI Host Adapter FreeBSD Wrapper Definitions * @@ -164,6 +164,15 @@ struct firmware * fw; struct mtx lock; struct cv kthread_cv; + union { + struct { + char wwnn[17]; + char wwpn[17]; + } fc; + struct { + int iid; + } spi; + } sysctl_info; #endif struct proc *kproc; bus_dma_tag_t cdmat; ==== //depot/projects/newisp/dev/smbus/smb.c#3 (text+ko) ==== @@ -23,9 +23,13 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/smbus/smb.c,v 1.37 2006/09/11 20:52:41 jhb Exp $ + * $FreeBSD: src/sys/dev/smbus/smb.c,v 1.38 2006/09/26 14:38:56 jhb Exp $ */ +#ifdef HAVE_KERNEL_OPTION_HEADERS +#include "opt_compat.h" +#endif + #include #include #include @@ -270,7 +274,9 @@ } break; +#if defined(COMPAT_FREEBSD4) || defined(COMPAT_FREEBSD5) || defined(COMPAT_FREEBSD6) case SMB_OLD_BREAD: +#endif case SMB_BREAD: if (s->count && s->data.byte_ptr) { count = min(s->count, SMB_MAXBLOCKSIZE); ==== //depot/projects/newisp/fs/devfs/devfs_vfsops.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ * @(#)kernfs_vfsops.c 8.10 (Berkeley) 5/14/95 * From: FreeBSD: src/sys/miscfs/kernfs/kernfs_vfsops.c 1.36 * - * $FreeBSD: src/sys/fs/devfs/devfs_vfsops.c,v 1.51 2006/09/18 13:23:08 kib Exp $ + * $FreeBSD: src/sys/fs/devfs/devfs_vfsops.c,v 1.52 2006/09/26 04:12:45 tegge Exp $ */ #include @@ -79,11 +79,13 @@ sx_init(&fmp->dm_lock, "devfsmount"); fmp->dm_holdcnt = 1; + MNT_ILOCK(mp); mp->mnt_flag |= MNT_LOCAL; mp->mnt_kern_flag |= MNTK_MPSAFE; #ifdef MAC mp->mnt_flag |= MNT_MULTILABEL; #endif + MNT_IUNLOCK(mp); fmp->dm_mount = mp; mp->mnt_data = (void *) fmp; vfs_getnewfsid(mp); ==== //depot/projects/newisp/fs/hpfs/hpfs_vfsops.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/fs/hpfs/hpfs_vfsops.c,v 1.57 2005/10/31 15:41:20 rwatson Exp $ + * $FreeBSD: src/sys/fs/hpfs/hpfs_vfsops.c,v 1.58 2006/09/26 04:12:45 tegge Exp $ */ @@ -315,7 +315,9 @@ mp->mnt_stat.f_fsid.val[0] = (long)dev2udev(dev); mp->mnt_stat.f_fsid.val[1] = mp->mnt_vfc->vfc_typenum; mp->mnt_maxsymlinklen = 0; + MNT_ILOCK(mp); mp->mnt_flag |= MNT_LOCAL; + MNT_IUNLOCK(mp); return (0); failed: @@ -359,7 +361,9 @@ hpfs_cpdeinit(hpmp); hpfs_bmdeinit(hpmp); mp->mnt_data = (qaddr_t)0; + MNT_ILOCK(mp); mp->mnt_flag &= ~MNT_LOCAL; + MNT_IUNLOCK(mp); FREE(hpmp, M_HPFSMNT); return (0); ==== //depot/projects/newisp/fs/msdosfs/msdosfs_vfsops.c#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_vfsops.c,v 1.152 2006/08/03 03:55:52 delphij Exp $ */ +/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_vfsops.c,v 1.153 2006/09/26 04:12:45 tegge Exp $ */ /* $NetBSD: msdosfs_vfsops.c,v 1.51 1997/11/17 15:36:58 ws Exp $ */ /*- @@ -706,7 +706,9 @@ mp->mnt_data = (qaddr_t) pmp; mp->mnt_stat.f_fsid.val[0] = dev2udev(dev); mp->mnt_stat.f_fsid.val[1] = mp->mnt_vfc->vfc_typenum; + MNT_ILOCK(mp); mp->mnt_flag |= MNT_LOCAL; + MNT_IUNLOCK(mp); #ifdef MSDOSFS_LARGE msdosfs_fileno_init(mp); @@ -798,7 +800,9 @@ #endif free(pmp, M_MSDOSFSMNT); mp->mnt_data = (qaddr_t)0; + MNT_ILOCK(mp); mp->mnt_flag &= ~MNT_LOCAL; + MNT_IUNLOCK(mp); return (error); } ==== //depot/projects/newisp/fs/ntfs/ntfs_vfsops.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/fs/ntfs/ntfs_vfsops.c,v 1.83 2006/05/26 00:32:20 rodrigc Exp $ + * $FreeBSD: src/sys/fs/ntfs/ntfs_vfsops.c,v 1.84 2006/09/26 04:12:45 tegge Exp $ */ @@ -430,7 +430,9 @@ mp->mnt_stat.f_fsid.val[0] = dev2udev(dev); mp->mnt_stat.f_fsid.val[1] = mp->mnt_vfc->vfc_typenum; mp->mnt_maxsymlinklen = 0; + MNT_ILOCK(mp); mp->mnt_flag |= MNT_LOCAL; + MNT_IUNLOCK(mp); return (0); out1: @@ -507,7 +509,9 @@ ntfs_u28_uninit(ntmp); ntfs_82u_uninit(ntmp); mp->mnt_data = (qaddr_t)0; + MNT_ILOCK(mp); mp->mnt_flag &= ~MNT_LOCAL; + MNT_IUNLOCK(mp); FREE(ntmp->ntm_ad, M_NTFSMNT); FREE(ntmp, M_NTFSMNT); return (error); ==== //depot/projects/newisp/fs/nullfs/null_vfsops.c#2 (text+ko) ==== @@ -32,7 +32,7 @@ * @(#)null_vfsops.c 8.2 (Berkeley) 1/21/94 * * @(#)lofs_vfsops.c 1.2 (Berkeley) 6/18/92 - * $FreeBSD: src/sys/fs/nullfs/null_vfsops.c,v 1.79 2006/05/28 22:45:52 rodrigc Exp $ + * $FreeBSD: src/sys/fs/nullfs/null_vfsops.c,v 1.80 2006/09/26 04:12:45 tegge Exp $ */ /* @@ -179,9 +179,14 @@ */ VOP_UNLOCK(vp, 0, td); - if (NULLVPTOLOWERVP(nullm_rootvp)->v_mount->mnt_flag & MNT_LOCAL) + if (NULLVPTOLOWERVP(nullm_rootvp)->v_mount->mnt_flag & MNT_LOCAL) { + MNT_ILOCK(mp); mp->mnt_flag |= MNT_LOCAL; + MNT_IUNLOCK(mp); + } + MNT_ILOCK(mp); mp->mnt_kern_flag |= lowerrootvp->v_mount->mnt_kern_flag & MNTK_MPSAFE; + MNT_IUNLOCK(mp); mp->mnt_data = (qaddr_t) xmp; vfs_getnewfsid(mp); ==== //depot/projects/newisp/fs/nwfs/nwfs_vfsops.c#2 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/fs/nwfs/nwfs_vfsops.c,v 1.43 2005/12/14 00:49:51 des Exp $ + * $FreeBSD: src/sys/fs/nwfs/nwfs_vfsops.c,v 1.44 2006/09/26 04:12:46 tegge Exp $ */ #include @@ -267,7 +267,9 @@ if (nmp->m.flags & NWFS_MOUNT_HAVE_NLS) free(nmp->m.nls.to_lower, M_NWFSDATA); free(nmp, M_NWFSDATA); + MNT_ILOCK(mp); mp->mnt_flag &= ~MNT_LOCAL; + MNT_IUNLOCK(mp); return (error); } ==== //depot/projects/newisp/fs/portalfs/portal_vfsops.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ * * @(#)portal_vfsops.c 8.11 (Berkeley) 5/14/95 * - * $FreeBSD: src/sys/fs/portalfs/portal_vfsops.c,v 1.58 2005/10/31 15:41:21 rwatson Exp $ + * $FreeBSD: src/sys/fs/portalfs/portal_vfsops.c,v 1.59 2006/09/26 04:12:46 tegge Exp $ */ /* @@ -146,7 +146,9 @@ fhold(fp); fmp->pm_server = fp; + MNT_ILOCK(mp); mp->mnt_flag |= MNT_LOCAL; + MNT_IUNLOCK(mp); mp->mnt_data = (qaddr_t) fmp; vfs_getnewfsid(mp); ==== //depot/projects/newisp/fs/smbfs/smbfs_vfsops.c#2 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/fs/smbfs/smbfs_vfsops.c,v 1.40 2006/07/17 16:13:42 jhb Exp $ + * $FreeBSD: src/sys/fs/smbfs/smbfs_vfsops.c,v 1.41 2006/09/26 04:12:46 tegge Exp $ */ #include @@ -318,7 +318,9 @@ #else free(smp, M_SMBFSDATA); #endif + MNT_ILOCK(mp); mp->mnt_flag &= ~MNT_LOCAL; + MNT_IUNLOCK(mp); return error; } ==== //depot/projects/newisp/fs/udf/udf_vfsops.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/fs/udf/udf_vfsops.c,v 1.43 2006/07/25 14:15:50 yar Exp $ + * $FreeBSD: src/sys/fs/udf/udf_vfsops.c,v 1.44 2006/09/26 04:12:46 tegge Exp $ */ /* udf_vfsops.c */ @@ -201,7 +201,9 @@ /* * Unconditionally mount as read-only. */ + MNT_ILOCK(mp); mp->mnt_flag |= MNT_RDONLY; + MNT_IUNLOCK(mp); /* * No root filesystem support. Probably not a big deal, since the @@ -341,7 +343,9 @@ mp->mnt_data = (qaddr_t)udfmp; mp->mnt_stat.f_fsid.val[0] = dev2udev(devvp->v_rdev); mp->mnt_stat.f_fsid.val[1] = mp->mnt_vfc->vfc_typenum; + MNT_ILOCK(mp); mp->mnt_flag |= MNT_LOCAL; + MNT_IUNLOCK(mp); udfmp->im_mountp = mp; udfmp->im_dev = devvp->v_rdev; udfmp->im_devvp = devvp; @@ -532,7 +536,9 @@ FREE(udfmp, M_UDFMOUNT); mp->mnt_data = (qaddr_t)0; + MNT_ILOCK(mp); mp->mnt_flag &= ~MNT_LOCAL; + MNT_IUNLOCK(mp); return (0); } ==== //depot/projects/newisp/fs/umapfs/umap_vfsops.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ * * @(#)umap_vfsops.c 8.8 (Berkeley) 5/14/95 * - * $FreeBSD: src/sys/fs/umapfs/umap_vfsops.c,v 1.64 2005/10/31 15:41:21 rwatson Exp $ + * $FreeBSD: src/sys/fs/umapfs/umap_vfsops.c,v 1.65 2006/09/26 04:12:46 tegge Exp $ */ /* @@ -216,8 +216,11 @@ umapm_rootvp = vp; umapm_rootvp->v_vflag |= VV_ROOT; amp->umapm_rootvp = umapm_rootvp; - if (UMAPVPTOLOWERVP(umapm_rootvp)->v_mount->mnt_flag & MNT_LOCAL) + if (UMAPVPTOLOWERVP(umapm_rootvp)->v_mount->mnt_flag & MNT_LOCAL) { + MNT_ILOCK(mp); mp->mnt_flag |= MNT_LOCAL; + MNT_IUNLOCK(mp); + } mp->mnt_data = (qaddr_t) amp; vfs_getnewfsid(mp); ==== //depot/projects/newisp/fs/unionfs/union_vfsops.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)union_vfsops.c 8.20 (Berkeley) 5/20/95 - * $FreeBSD: src/sys/fs/unionfs/union_vfsops.c,v 1.77 2005/10/31 15:41:22 rwatson Exp $ + * $FreeBSD: src/sys/fs/unionfs/union_vfsops.c,v 1.78 2006/09/26 04:12:46 tegge Exp $ */ /* @@ -86,7 +86,9 @@ /* * Disable clustered write, otherwise system becomes unstable. */ + MNT_ILOCK(mp); mp->mnt_flag |= MNT_NOCLUSTERW; + MNT_IUNLOCK(mp); if (mp->mnt_flag & MNT_ROOTFS) return (EOPNOTSUPP); @@ -246,8 +248,11 @@ if (um->um_op == UNMNT_ABOVE) { if (((um->um_lowervp == NULLVP) || (um->um_lowervp->v_mount->mnt_flag & MNT_LOCAL)) && - (um->um_uppervp->v_mount->mnt_flag & MNT_LOCAL)) + (um->um_uppervp->v_mount->mnt_flag & MNT_LOCAL)) { + MNT_ILOCK(mp); mp->mnt_flag |= MNT_LOCAL; + MNT_IUNLOCK(mp); + } } /* @@ -257,7 +262,9 @@ * mount of the underlying filesystem to go from rdonly to rdwr * will leave the unioned view as read-only. */ + MNT_ILOCK(mp); mp->mnt_flag |= (um->um_uppervp->v_mount->mnt_flag & MNT_RDONLY); + MNT_IUNLOCK(mp); mp->mnt_data = (qaddr_t) um; vfs_getnewfsid(mp); ==== //depot/projects/newisp/gnu/fs/ext2fs/ext2_inode.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ * SUCH DAMAGE. * * @(#)ffs_inode.c 8.5 (Berkeley) 12/30/93 - * $FreeBSD: src/sys/gnu/fs/ext2fs/ext2_inode.c,v 1.57 2005/12/05 11:58:33 ru Exp $ + * $FreeBSD: src/sys/gnu/fs/ext2fs/ext2_inode.c,v 1.58 2006/09/26 04:15:58 tegge Exp $ */ #include @@ -92,7 +92,7 @@ } ext2_i2ei(ip, (struct ext2_inode *)((char *)bp->b_data + EXT2_INODE_SIZE * ino_to_fsbo(fs, ip->i_number))); - if (waitfor && (vp->v_mount->mnt_flag & MNT_ASYNC) == 0) + if (waitfor && (vp->v_mount->mnt_kern_flag & MNTK_ASYNC) == 0) return (bwrite(bp)); else { bdwrite(bp); ==== //depot/projects/newisp/gnu/fs/ext2fs/ext2_vfsops.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ * SUCH DAMAGE. * * @(#)ffs_vfsops.c 8.8 (Berkeley) 4/18/94 - * $FreeBSD: src/sys/gnu/fs/ext2fs/ext2_vfsops.c,v 1.157 2006/05/26 00:32:20 rodrigc Exp $ + * $FreeBSD: src/sys/gnu/fs/ext2fs/ext2_vfsops.c,v 1.158 2006/09/26 04:12:47 tegge Exp $ */ /*- @@ -230,7 +230,9 @@ fs->s_es->s_state &= ~EXT2_VALID_FS; ext2_sbupdate(ump, MNT_WAIT); fs->s_rd_only = 0; + MNT_ILOCK(mp); mp->mnt_flag &= ~MNT_RDONLY; + MNT_IUNLOCK(mp); } if (vfs_flagopt(opts, "export", NULL, 0)) { /* Process export requests in vfs_mount.c. */ @@ -683,7 +685,9 @@ mp->mnt_stat.f_fsid.val[0] = dev2udev(dev); mp->mnt_stat.f_fsid.val[1] = mp->mnt_vfc->vfc_typenum; mp->mnt_maxsymlinklen = EXT2_MAXSYMLINKLEN; + MNT_ILOCK(mp); mp->mnt_flag |= MNT_LOCAL; + MNT_IUNLOCK(mp); ump->um_mountp = mp; ump->um_dev = dev; ump->um_devvp = devvp; @@ -771,7 +775,9 @@ bsd_free(fs, M_EXT2MNT); bsd_free(ump, M_EXT2MNT); mp->mnt_data = (qaddr_t)0; + MNT_ILOCK(mp); mp->mnt_flag &= ~MNT_LOCAL; + MNT_IUNLOCK(mp); return (error); } ==== //depot/projects/newisp/gnu/fs/reiserfs/reiserfs_vfsops.c#2 (text+ko) ==== @@ -4,7 +4,7 @@ * * Ported to FreeBSD by Jean-Sébastien Pédron * - * $FreeBSD: src/sys/gnu/fs/reiserfs/reiserfs_vfsops.c,v 1.5 2006/05/26 11:58:30 rodrigc Exp $ + * $FreeBSD: src/sys/gnu/fs/reiserfs/reiserfs_vfsops.c,v 1.6 2006/09/26 04:12:47 tegge Exp $ */ #include @@ -241,7 +241,9 @@ } mp->mnt_data = (qaddr_t)0; + MNT_ILOCK(mp); mp->mnt_flag &= ~MNT_LOCAL; + MNT_IUNLOCK(mp); reiserfs_log(LOG_DEBUG, "done\n"); return (error); @@ -624,7 +626,9 @@ mp->mnt_data = (qaddr_t)rmp; mp->mnt_stat.f_fsid.val[0] = dev2udev(dev); mp->mnt_stat.f_fsid.val[1] = mp->mnt_vfc->vfc_typenum; + MNT_ILOCK(mp); mp->mnt_flag |= MNT_LOCAL; + MNT_IUNLOCK(mp); #if defined(si_mountpoint) devvp->v_rdev->si_mountpoint = mp; #endif ==== //depot/projects/newisp/i386/conf/GENERIC#2 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.455 2006/07/25 01:06:32 yongari Exp $ +# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.456 2006/09/26 12:36:34 ru Exp $ cpu I486_CPU cpu I586_CPU @@ -49,6 +49,7 @@ options COMPAT_43TTY # BSD 4.3 TTY compat [KEEP THIS!] options COMPAT_FREEBSD4 # Compatible with FreeBSD4 options COMPAT_FREEBSD5 # Compatible with FreeBSD5 +options COMPAT_FREEBSD6 # Compatible with FreeBSD6 options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI options KTRACE # ktrace(1) support options SYSVSHM # SYSV-style shared memory ==== //depot/projects/newisp/ia64/conf/GENERIC#2 (text+ko) ==== @@ -18,7 +18,7 @@ # # For hardware specific information check HARDWARE.TXT # -# $FreeBSD: src/sys/ia64/conf/GENERIC,v 1.82 2006/07/09 16:39:37 mjacob Exp $ +# $FreeBSD: src/sys/ia64/conf/GENERIC,v 1.83 2006/09/26 12:36:34 ru Exp $ cpu ITANIUM ident GENERIC @@ -28,6 +28,7 @@ options CD9660 # ISO 9660 Filesystem options COMPAT_43TTY # BSD 4.3 TTY compat [KEEP THIS!] options COMPAT_FREEBSD5 # Compatible with FreeBSD5 +options COMPAT_FREEBSD6 # Compatible with FreeBSD6 options DDB # Support DDB options FFS # Berkeley Fast Filesystem options GDB # Support remote GDB ==== //depot/projects/newisp/isofs/cd9660/cd9660_vfsops.c#2 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/isofs/cd9660/cd9660_vfsops.c,v 1.145 2006/05/26 00:32:20 rodrigc Exp $"); +__FBSDID("$FreeBSD: src/sys/isofs/cd9660/cd9660_vfsops.c,v 1.146 2006/09/26 04:12:47 tegge Exp $"); #include #include @@ -137,7 +137,9 @@ /* * Unconditionally mount as read-only. */ + MNT_ILOCK(mp); mp->mnt_flag |= MNT_RDONLY; + MNT_IUNLOCK(mp); fspec = vfs_getopts(mp->mnt_optnew, "from", &error); if (error) @@ -378,7 +380,9 @@ mp->mnt_stat.f_fsid.val[0] = dev2udev(dev); mp->mnt_stat.f_fsid.val[1] = mp->mnt_vfc->vfc_typenum; mp->mnt_maxsymlinklen = 0; + MNT_ILOCK(mp); mp->mnt_flag |= MNT_LOCAL; + MNT_IUNLOCK(mp); isomp->im_mountp = mp; isomp->im_dev = dev; isomp->im_devvp = devvp; @@ -528,7 +532,9 @@ vrele(isomp->im_devvp); free((caddr_t)isomp, M_ISOFSMNT); mp->mnt_data = (qaddr_t)0; + MNT_ILOCK(mp); mp->mnt_flag &= ~MNT_LOCAL; + MNT_IUNLOCK(mp); return (error); } ==== //depot/projects/newisp/kern/uipc_mqueue.c#2 (text+ko) ==== @@ -43,7 +43,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/uipc_mqueue.c,v 1.15 2006/04/17 18:20:37 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_mqueue.c,v 1.16 2006/09/26 04:12:47 tegge Exp $"); #include #include @@ -561,8 +561,10 @@ return (EOPNOTSUPP); mp->mnt_data = &mqfs_data; + MNT_ILOCK(mp); mp->mnt_flag |= MNT_LOCAL; mp->mnt_kern_flag |= MNTK_MPSAFE; + MNT_IUNLOCK(mp); vfs_getnewfsid(mp); sbp = &mp->mnt_stat; ==== //depot/projects/newisp/kern/vfs_cluster.c#2 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/vfs_cluster.c,v 1.172 2006/03/21 01:04:24 tegge Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_cluster.c,v 1.173 2006/09/26 04:15:58 tegge Exp $"); #include "opt_debug_cluster.h" @@ -595,7 +595,7 @@ int async; if (vp->v_type == VREG) { - async = vp->v_mount->mnt_flag & MNT_ASYNC; + async = vp->v_mount->mnt_kern_flag & MNTK_ASYNC; lblocksize = vp->v_mount->mnt_stat.f_iosize; } else { async = 0; ==== //depot/projects/newisp/kern/vfs_export.c#2 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/vfs_export.c,v 1.335 2005/10/31 15:41:25 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_export.c,v 1.336 2006/09/26 04:12:47 tegge Exp $"); #include #include @@ -117,7 +117,9 @@ bcopy(argp->ex_anon.cr_groups, np->netc_anon.cr_groups, sizeof(np->netc_anon.cr_groups)); refcount_init(&np->netc_anon.cr_ref, 1); + MNT_ILOCK(mp); mp->mnt_flag |= MNT_DEFEXPORTED; + MNT_IUNLOCK(mp); return (0); } @@ -236,13 +238,17 @@ return (ENOENT); if (mp->mnt_flag & MNT_EXPUBLIC) { vfs_setpublicfs(NULL, NULL, NULL); + MNT_ILOCK(mp); mp->mnt_flag &= ~MNT_EXPUBLIC; + MNT_IUNLOCK(mp); } vfs_free_addrlist(nep); mp->mnt_export = NULL; free(nep, M_MOUNT); nep = NULL; + MNT_ILOCK(mp); mp->mnt_flag &= ~(MNT_EXPORTED | MNT_DEFEXPORTED); + MNT_IUNLOCK(mp); } if (argp->ex_flags & MNT_EXPORTED) { if (nep == NULL) { @@ -252,11 +258,15 @@ if (argp->ex_flags & MNT_EXPUBLIC) { if ((error = vfs_setpublicfs(mp, nep, argp)) != 0) return (error); + MNT_ILOCK(mp); mp->mnt_flag |= MNT_EXPUBLIC; + MNT_IUNLOCK(mp); } if ((error = vfs_hang_addrlist(mp, nep, argp))) return (error); + MNT_ILOCK(mp); mp->mnt_flag |= MNT_EXPORTED; + MNT_IUNLOCK(mp); } return (0); } ==== //depot/projects/newisp/kern/vfs_mount.c#3 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/vfs_mount.c,v 1.233 2006/09/19 14:04:12 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_mount.c,v 1.238 2006/09/26 04:20:08 tegge Exp $"); #include #include @@ -471,7 +471,9 @@ mp->mnt_vfc = vfsp; vfsp->vfc_refcount++; /* XXX Unlocked */ mp->mnt_stat.f_type = vfsp->vfc_typenum; + MNT_ILOCK(mp); mp->mnt_flag |= vfsp->vfc_flags & MNT_VISFLAGMASK; + MNT_IUNLOCK(mp); strlcpy(mp->mnt_stat.f_fstypename, vfsp->vfc_name, MFSNAMELEN); mp->mnt_vnodecovered = vp; mp->mnt_cred = crdup(td->td_ucred); @@ -788,7 +790,7 @@ struct mount *mp; struct vfsconf *vfsp; struct export_args export; - int error, flag = 0, kern_flag = 0; + int error, flag = 0; struct vattr va; struct nameidata nd; @@ -848,17 +850,19 @@ return (EINVAL); } mp = vp->v_mount; + MNT_ILOCK(mp); flag = mp->mnt_flag; - kern_flag = mp->mnt_kern_flag; /* * We only allow the filesystem to be reloaded if it * is currently mounted read-only. */ if ((fsflags & MNT_RELOAD) && ((mp->mnt_flag & MNT_RDONLY) == 0)) { + MNT_IUNLOCK(mp); vput(vp); return (EOPNOTSUPP); /* Needs translation */ } + MNT_IUNLOCK(mp); /* * Only privileged root, or (if MNT_USER is set) the user that * did the original mount is permitted to update it. @@ -882,8 +886,10 @@ } vp->v_iflag |= VI_MOUNT; VI_UNLOCK(vp); + MNT_ILOCK(mp); mp->mnt_flag |= fsflags & (MNT_RELOAD | MNT_FORCE | MNT_UPDATE | MNT_SNAPSHOT | MNT_ROOTFS); + MNT_IUNLOCK(mp); VOP_UNLOCK(vp, 0, td); mp->mnt_optnew = fsdata; vfs_mergeopts(mp->mnt_optnew, mp->mnt_opt); @@ -935,10 +941,13 @@ /* * Set the mount level flags. */ - if (fsflags & MNT_RDONLY) - mp->mnt_flag |= MNT_RDONLY; - mp->mnt_flag &=~ MNT_UPDATEMASK; - mp->mnt_flag |= fsflags & (MNT_UPDATEMASK | MNT_FORCE | MNT_ROOTFS); + MNT_ILOCK(mp); + mp->mnt_flag = (mp->mnt_flag & ~MNT_UPDATEMASK) | + (fsflags & (MNT_UPDATEMASK | MNT_FORCE | MNT_ROOTFS | + MNT_RDONLY)); + if ((mp->mnt_flag & MNT_ASYNC) == 0) + mp->mnt_kern_flag &= ~MNTK_ASYNC; + MNT_IUNLOCK(mp); /* * Mount the filesystem. * XXX The final recipients of VFS_MOUNT just overwrite the ndp they @@ -968,12 +977,18 @@ */ mp->mnt_optnew = NULL; if (mp->mnt_flag & MNT_UPDATE) { - mp->mnt_flag &= - ~(MNT_UPDATE | MNT_RELOAD | MNT_FORCE | MNT_SNAPSHOT); - if (error) { - mp->mnt_flag = flag; - mp->mnt_kern_flag = kern_flag; - } + MNT_ILOCK(mp); + if (error) + mp->mnt_flag = (mp->mnt_flag & MNT_QUOTA) | + (flag & ~MNT_QUOTA); + else + mp->mnt_flag &= ~(MNT_UPDATE | MNT_RELOAD | + MNT_FORCE | MNT_SNAPSHOT); + if ((mp->mnt_flag & MNT_ASYNC) != 0 && mp->mnt_noasync == 0) + mp->mnt_kern_flag |= MNTK_ASYNC; + else + mp->mnt_kern_flag &= ~MNTK_ASYNC; + MNT_IUNLOCK(mp); if ((mp->mnt_flag & MNT_RDONLY) == 0) { if (mp->mnt_syncer == NULL) error = vfs_allocate_syncvnode(mp); @@ -989,6 +1004,12 @@ vrele(vp); return (error); } + MNT_ILOCK(mp); + if ((mp->mnt_flag & MNT_ASYNC) != 0 && mp->mnt_noasync == 0) + mp->mnt_kern_flag |= MNTK_ASYNC; + else + mp->mnt_kern_flag &= ~MNTK_ASYNC; + MNT_IUNLOCK(mp); vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); /* * Put the new filesystem on the mount list after root. @@ -1185,8 +1206,11 @@ vfs_setpublicfs(NULL, NULL, NULL); vfs_msync(mp, MNT_WAIT); + MNT_ILOCK(mp); async_flag = mp->mnt_flag & MNT_ASYNC; mp->mnt_flag &= ~MNT_ASYNC; + mp->mnt_kern_flag &= ~MNTK_ASYNC; + MNT_IUNLOCK(mp); cache_purgevfs(mp); /* remove cache entries for this file sys */ if (mp->mnt_syncer != NULL) vrele(mp->mnt_syncer); @@ -1228,6 +1252,8 @@ MNT_ILOCK(mp); mp->mnt_kern_flag &= ~(MNTK_UNMOUNT | MNTK_UNMOUNTF); mp->mnt_flag |= async_flag; + if ((mp->mnt_flag & MNT_ASYNC) != 0 && mp->mnt_noasync == 0) + mp->mnt_kern_flag |= MNTK_ASYNC; lockmgr(&mp->mnt_lock, LK_RELEASE, NULL, td); if (mp->mnt_kern_flag & MNTK_MWAIT) wakeup(mp); ==== //depot/projects/newisp/kern/vfs_subr.c#3 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.682 2006/09/04 22:15:44 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.684 2006/09/26 04:15:58 tegge Exp $"); #include "opt_ddb.h" #include "opt_mac.h" @@ -3051,7 +3051,7 @@ struct vnode *syncvp = ap->a_vp; struct mount *mp = syncvp->v_mount; struct thread *td = ap->a_td; - int error, asyncflag; + int error; struct bufobj *bo; /* @@ -3081,12 +3081,17 @@ vfs_unbusy(mp, td); return (0); } - asyncflag = mp->mnt_flag & MNT_ASYNC; - mp->mnt_flag &= ~MNT_ASYNC; + MNT_ILOCK(mp); + mp->mnt_noasync++; + mp->mnt_kern_flag &= ~MNTK_ASYNC; + MNT_IUNLOCK(mp); vfs_msync(mp, MNT_NOWAIT); error = VFS_SYNC(mp, MNT_LAZY, td); - if (asyncflag) - mp->mnt_flag |= MNT_ASYNC; + MNT_ILOCK(mp); + mp->mnt_noasync--; + if ((mp->mnt_flag & MNT_ASYNC) != 0 && mp->mnt_noasync == 0) >>> TRUNCATED FOR MAIL (1000 lines) <<<