From owner-p4-projects Sat May 18 18:59:15 2002 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EDFC037B411; Sat, 18 May 2002 18:58:06 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 235BF37B40B for ; Sat, 18 May 2002 18:58:05 -0700 (PDT) Received: (from perforce@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g4J1w4o03148 for perforce@freebsd.org; Sat, 18 May 2002 18:58:04 -0700 (PDT) (envelope-from jhb@freebsd.org) Date: Sat, 18 May 2002 18:58:04 -0700 (PDT) Message-Id: <200205190158.g4J1w4o03148@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin Subject: PERFORCE change 11499 for review To: Perforce Change Reviews Sender: owner-p4-projects@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG http://people.freebsd.org/~peter/p4db/chv.cgi?CH=11499 Change 11499 by jhb@jhb_laptop on 2002/05/18 18:57:23 IFC - get my p_canfoo() commit. Affected files ... ... //depot/projects/smpng/sys/boot/i386/libi386/biospnp.c#2 integrate ... //depot/projects/smpng/sys/compat/linprocfs/linprocfs.c#17 integrate ... //depot/projects/smpng/sys/compat/linux/linux_ipc.c#7 integrate ... //depot/projects/smpng/sys/conf/NOTES#10 integrate ... //depot/projects/smpng/sys/conf/files#39 integrate ... //depot/projects/smpng/sys/conf/options#23 integrate ... //depot/projects/smpng/sys/fs/procfs/procfs.c#4 integrate ... //depot/projects/smpng/sys/fs/procfs/procfs_ctl.c#11 integrate ... //depot/projects/smpng/sys/fs/procfs/procfs_dbregs.c#9 integrate ... //depot/projects/smpng/sys/fs/procfs/procfs_fpregs.c#9 integrate ... //depot/projects/smpng/sys/fs/procfs/procfs_mem.c#8 integrate ... //depot/projects/smpng/sys/fs/procfs/procfs_regs.c#9 integrate ... //depot/projects/smpng/sys/fs/procfs/procfs_status.c#12 integrate ... //depot/projects/smpng/sys/fs/pseudofs/pseudofs_vnops.c#16 integrate ... //depot/projects/smpng/sys/fs/specfs/spec_vnops.c#14 integrate ... //depot/projects/smpng/sys/gnu/ext2fs/ext2_alloc.c#6 integrate ... //depot/projects/smpng/sys/gnu/ext2fs/ext2_balloc.c#3 integrate ... //depot/projects/smpng/sys/gnu/ext2fs/ext2_bmap.c#2 integrate ... //depot/projects/smpng/sys/gnu/ext2fs/ext2_extern.h#6 integrate ... //depot/projects/smpng/sys/gnu/ext2fs/ext2_ihash.c#2 integrate ... //depot/projects/smpng/sys/gnu/ext2fs/ext2_inode.c#6 integrate ... //depot/projects/smpng/sys/gnu/ext2fs/ext2_subr.c#6 integrate ... //depot/projects/smpng/sys/gnu/ext2fs/ext2_vfsops.c#15 integrate ... //depot/projects/smpng/sys/gnu/ext2fs/ext2_vnops.c#9 integrate ... //depot/projects/smpng/sys/gnu/ext2fs/inode.h#2 integrate ... //depot/projects/smpng/sys/kern/kern_event.c#11 integrate ... //depot/projects/smpng/sys/kern/kern_ktrace.c#23 integrate ... //depot/projects/smpng/sys/kern/kern_physio.c#2 integrate ... //depot/projects/smpng/sys/kern/kern_proc.c#30 integrate ... //depot/projects/smpng/sys/kern/kern_prot.c#63 integrate ... //depot/projects/smpng/sys/kern/kern_resource.c#24 integrate ... //depot/projects/smpng/sys/kern/kern_sig.c#37 integrate ... //depot/projects/smpng/sys/kern/subr_blist.c#2 integrate ... //depot/projects/smpng/sys/kern/sys_process.c#18 integrate ... //depot/projects/smpng/sys/nfsclient/bootp_subr.c#10 integrate ... //depot/projects/smpng/sys/posix4/p1003_1b.c#5 integrate ... //depot/projects/smpng/sys/security/lomac/kernel_lkm.c#3 integrate ... //depot/projects/smpng/sys/sys/blist.h#3 integrate ... //depot/projects/smpng/sys/sys/proc.h#49 integrate ... //depot/projects/smpng/sys/sys/types.h#14 integrate ... //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#13 integrate ... //depot/projects/smpng/sys/ufs/ffs/ffs_vfsops.c#24 integrate ... //depot/projects/smpng/sys/ufs/ifs/README#2 delete ... //depot/projects/smpng/sys/ufs/ifs/ifs_extern.h#3 delete ... //depot/projects/smpng/sys/ufs/ifs/ifs_lookup.c#4 delete ... //depot/projects/smpng/sys/ufs/ifs/ifs_subr.c#3 delete ... //depot/projects/smpng/sys/ufs/ifs/ifs_vfsops.c#7 delete ... //depot/projects/smpng/sys/ufs/ifs/ifs_vnops.c#7 delete ... //depot/projects/smpng/sys/ufs/ufs/inode.h#3 integrate ... //depot/projects/smpng/sys/ufs/ufs/ufs_bmap.c#4 integrate ... //depot/projects/smpng/sys/ufs/ufs/ufs_dirhash.c#13 integrate ... //depot/projects/smpng/sys/ufs/ufs/ufs_readwrite.c#9 integrate ... //depot/projects/smpng/sys/ufs/ufs/ufs_vfsops.c#11 integrate ... //depot/projects/smpng/sys/ufs/ufs/ufs_vnops.c#15 integrate ... //depot/projects/smpng/sys/ufs/ufs/ufsmount.h#5 integrate ... //depot/projects/smpng/sys/vm/vm_map.c#14 integrate ... //depot/projects/smpng/sys/vm/vm_mmap.c#17 integrate ... //depot/projects/smpng/sys/vm/vm_object.c#12 integrate Differences ... ==== //depot/projects/smpng/sys/boot/i386/libi386/biospnp.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/boot/i386/libi386/biospnp.c,v 1.5 2000/08/03 09:14:01 jhb Exp $ + * $FreeBSD: src/sys/boot/i386/libi386/biospnp.c,v 1.6 2002/05/18 09:12:32 phk Exp $ */ /* @@ -263,7 +263,7 @@ switch(*p) { case 'w': - i = va_arg(ap, u_int16_t); + i = va_arg(ap, uint); *(u_int16_t *)argp = i; argp += sizeof(u_int16_t); break; ==== //depot/projects/smpng/sys/compat/linprocfs/linprocfs.c#17 (text+ko) ==== @@ -38,7 +38,7 @@ * * @(#)procfs_status.c 8.4 (Berkeley) 6/15/94 * - * $FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.51 2002/04/13 23:09:41 jhb Exp $ + * $FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.52 2002/05/19 00:14:47 jhb Exp $ */ #include @@ -673,7 +673,7 @@ */ PROC_LOCK(p); - if (p->p_args && (ps_argsopen || !p_cansee(td->td_proc, p))) { + if (p->p_args && (ps_argsopen || !p_cansee(td, p))) { sbuf_bcpy(sb, p->p_args->ar_args, p->p_args->ar_length); PROC_UNLOCK(p); } else if (p != td->td_proc) { ==== //depot/projects/smpng/sys/compat/linux/linux_ipc.c#7 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/compat/linux/linux_ipc.c,v 1.28 2001/10/28 09:28:57 mr Exp $ + * $FreeBSD: src/sys/compat/linux/linux_ipc.c,v 1.29 2002/05/18 07:53:56 marcel Exp $ */ #include @@ -358,7 +358,7 @@ bsd_args.msqid = args->msqid; bsd_args.msgp = args->msgp; bsd_args.msgsz = args->msgsz; - bsd_args.msgtyp = 0; /* XXX - args->msgtyp; */ + bsd_args.msgtyp = args->msgtyp; bsd_args.msgflg = args->msgflg; return msgrcv(td, &bsd_args); } ==== //depot/projects/smpng/sys/conf/NOTES#10 (text+ko) ==== @@ -14,7 +14,7 @@ # This file contains machine independent kernel configuration notes. For # machine dependent notes, look in /sys//conf/NOTES. # -# $FreeBSD: src/sys/conf/NOTES,v 1.1031 2002/05/16 21:23:39 trhodes Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1032 2002/05/19 00:11:07 rwatson Exp $ # # @@ -592,9 +592,6 @@ # options NODEVFS #disable devices filesystem # The xFS_ROOT options REQUIRE the associated ``options xFS'' options NFS_ROOT #NFS usable as root device -# This code enables IFS, an FFS which exports inodes as the namespace. -# You can find details in src/sys/ufs/ifs/README . -options IFS # Soft updates is a technique for improving filesystem speed and # making abrupt shutdown less risky. ==== //depot/projects/smpng/sys/conf/files#39 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.634 2002/05/16 21:23:39 trhodes Exp $ +# $FreeBSD: src/sys/conf/files,v 1.635 2002/05/19 00:11:07 rwatson Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -1299,49 +1299,25 @@ posix4/p1003_1b.c standard posix4/posix4_mib.c standard ufs/ffs/ffs_alloc.c optional ffs -ufs/ffs/ffs_alloc.c optional ifs ufs/ffs/ffs_balloc.c optional ffs -ufs/ffs/ffs_balloc.c optional ifs ufs/ffs/ffs_inode.c optional ffs -ufs/ffs/ffs_inode.c optional ifs ufs/ffs/ffs_snapshot.c optional ffs -ufs/ffs/ffs_snapshot.c optional ifs ufs/ffs/ffs_softdep.c optional softupdates ffs -ufs/ffs/ffs_softdep.c optional softupdates ifs ufs/ffs/ffs_softdep_stub.c optional ffs -ufs/ffs/ffs_softdep_stub.c optional ifs ufs/ffs/ffs_subr.c optional ffs -ufs/ffs/ffs_subr.c optional ifs ufs/ffs/ffs_tables.c optional ffs -ufs/ffs/ffs_tables.c optional ifs ufs/ffs/ffs_vfsops.c optional ffs -ufs/ffs/ffs_vfsops.c optional ifs ufs/ffs/ffs_vnops.c optional ffs -ufs/ffs/ffs_vnops.c optional ifs ufs/ufs/ufs_acl.c optional ffs -ufs/ufs/ufs_acl.c optional ifs ufs/ufs/ufs_bmap.c optional ffs -ufs/ufs/ufs_bmap.c optional ifs ufs/ufs/ufs_dirhash.c optional ffs -ufs/ufs/ufs_dirhash.c optional ifs ufs/ufs/ufs_extattr.c optional ffs -ufs/ufs/ufs_extattr.c optional ifs ufs/ufs/ufs_ihash.c optional ffs -ufs/ufs/ufs_ihash.c optional ifs ufs/ufs/ufs_inode.c optional ffs -ufs/ufs/ufs_inode.c optional ifs ufs/ufs/ufs_lookup.c optional ffs -ufs/ufs/ufs_lookup.c optional ifs ufs/ufs/ufs_quota.c optional ffs -ufs/ufs/ufs_quota.c optional ifs ufs/ufs/ufs_vfsops.c optional ffs -ufs/ufs/ufs_vfsops.c optional ifs ufs/ufs/ufs_vnops.c optional ffs -ufs/ufs/ufs_vnops.c optional ifs -ufs/ifs/ifs_lookup.c optional ifs -ufs/ifs/ifs_vfsops.c optional ifs -ufs/ifs/ifs_vnops.c optional ifs -ufs/ifs/ifs_subr.c optional ifs vm/default_pager.c standard vm/device_pager.c standard vm/phys_pager.c standard ==== //depot/projects/smpng/sys/conf/options#23 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.316 2002/05/16 21:23:40 trhodes Exp $ +# $FreeBSD: src/sys/conf/options,v 1.317 2002/05/19 00:11:07 rwatson Exp $ # # On the handling of kernel options # @@ -134,7 +134,6 @@ # Broken - ffs_snapshot() dependency from ufs_lookup() :-( FFS opt_ffs_broken_fixme.h -IFS opt_ffs_broken_fixme.h # These static filesystems has one slightly bogus static dependency in # sys/i386/i386/autoconf.c. If any of these filesystems are ==== //depot/projects/smpng/sys/fs/procfs/procfs.c#4 (text+ko) ==== @@ -37,7 +37,7 @@ * * @(#)procfs_vfsops.c 8.7 (Berkeley) 5/10/95 * - * $FreeBSD: src/sys/fs/procfs/procfs.c,v 1.4 2002/02/18 21:41:11 des Exp $ + * $FreeBSD: src/sys/fs/procfs/procfs.c,v 1.5 2002/05/19 00:14:47 jhb Exp $ */ #include @@ -107,6 +107,7 @@ vap->va_mode = 0600; /* p is locked by caller */ + PROC_LOCK_ASSERT(p, MA_OWNED); vap->va_uid = p->p_ucred->cr_uid; vap->va_gid = p->p_ucred->cr_gid; @@ -130,8 +131,9 @@ int procfs_candebug(PFS_VIS_ARGS) { + PROC_LOCK_ASSERT(p, MA_OWNED); return ((p->p_flag & P_SYSTEM) == 0 && - p_candebug(td->td_proc, p) == 0); + p_candebug(td, p) == 0); } /* ==== //depot/projects/smpng/sys/fs/procfs/procfs_ctl.c#11 (text+ko) ==== @@ -38,7 +38,7 @@ * * From: * $Id: procfs_ctl.c,v 3.2 1993/12/15 09:40:17 jsp Exp $ - * $FreeBSD: src/sys/fs/procfs/procfs_ctl.c,v 1.39 2002/04/13 23:19:13 jhb Exp $ + * $FreeBSD: src/sys/fs/procfs/procfs_ctl.c,v 1.40 2002/05/19 00:14:47 jhb Exp $ */ #include @@ -122,7 +122,7 @@ if (op == PROCFS_CTL_ATTACH) { sx_xlock(&proctree_lock); PROC_LOCK(p); - if ((error = p_candebug(td->td_proc, p)) != 0) + if ((error = p_candebug(td, p)) != 0) goto out; if (p->p_flag & P_TRACED) { error = EBUSY; @@ -165,7 +165,7 @@ */ PROC_LOCK(p); if (op != PROCFS_CTL_DETACH && - ((error = p_candebug(td->td_proc, p)))) { + ((error = p_candebug(td, p)))) { PROC_UNLOCK(p); return (error); } ==== //depot/projects/smpng/sys/fs/procfs/procfs_dbregs.c#9 (text+ko) ==== @@ -44,7 +44,7 @@ * * From: * $Id: procfs_regs.c,v 3.2 1993/12/15 09:40:17 jsp Exp $ - * $FreeBSD: src/sys/fs/procfs/procfs_dbregs.c,v 1.19 2002/04/13 23:14:08 jhb Exp $ + * $FreeBSD: src/sys/fs/procfs/procfs_dbregs.c,v 1.20 2002/05/19 00:14:47 jhb Exp $ */ #include @@ -69,7 +69,7 @@ int kl; PROC_LOCK(p); - if (p_candebug(td->td_proc, p) != 0) { + if (p_candebug(td, p) != 0) { PROC_UNLOCK(p); return (EPERM); } ==== //depot/projects/smpng/sys/fs/procfs/procfs_fpregs.c#9 (text+ko) ==== @@ -38,7 +38,7 @@ * * From: * $Id: procfs_regs.c,v 3.2 1993/12/15 09:40:17 jsp Exp $ - * $FreeBSD: src/sys/fs/procfs/procfs_fpregs.c,v 1.25 2002/04/13 23:14:08 jhb Exp $ + * $FreeBSD: src/sys/fs/procfs/procfs_fpregs.c,v 1.26 2002/05/19 00:14:47 jhb Exp $ */ #include @@ -63,7 +63,7 @@ int kl; PROC_LOCK(p); - if (p_candebug(td->td_proc, p)) { + if (p_candebug(td, p)) { PROC_UNLOCK(p); return (EPERM); } ==== //depot/projects/smpng/sys/fs/procfs/procfs_mem.c#8 (text+ko) ==== @@ -37,7 +37,7 @@ * * @(#)procfs_mem.c 8.5 (Berkeley) 6/15/94 * - * $FreeBSD: src/sys/fs/procfs/procfs_mem.c,v 1.57 2002/04/21 15:35:54 bde Exp $ + * $FreeBSD: src/sys/fs/procfs/procfs_mem.c,v 1.58 2002/05/19 00:14:47 jhb Exp $ */ #include @@ -66,7 +66,7 @@ return (0); PROC_LOCK(p); - error = p_candebug(td->td_proc, p); + error = p_candebug(td, p); PROC_UNLOCK(p); if (error == 0) error = proc_rwmem(p, uio); ==== //depot/projects/smpng/sys/fs/procfs/procfs_regs.c#9 (text+ko) ==== @@ -38,7 +38,7 @@ * * From: * $Id: procfs_regs.c,v 3.2 1993/12/15 09:40:17 jsp Exp $ - * $FreeBSD: src/sys/fs/procfs/procfs_regs.c,v 1.24 2002/04/13 23:14:08 jhb Exp $ + * $FreeBSD: src/sys/fs/procfs/procfs_regs.c,v 1.25 2002/05/19 00:14:47 jhb Exp $ */ #include @@ -63,7 +63,7 @@ int kl; PROC_LOCK(p); - if (p_candebug(td->td_proc, p)) { + if (p_candebug(td, p)) { PROC_UNLOCK(p); return (EPERM); } ==== //depot/projects/smpng/sys/fs/procfs/procfs_status.c#12 (text+ko) ==== @@ -38,7 +38,7 @@ * * From: * $Id: procfs_status.c,v 3.1 1993/12/15 09:40:17 jsp Exp $ - * $FreeBSD: src/sys/fs/procfs/procfs_status.c,v 1.43 2002/04/13 23:09:41 jhb Exp $ + * $FreeBSD: src/sys/fs/procfs/procfs_status.c,v 1.44 2002/05/19 00:14:47 jhb Exp $ */ #include @@ -182,7 +182,7 @@ */ PROC_LOCK(p); - if (p->p_args && (ps_argsopen || !p_cansee(td->td_proc, p))) { + if (p->p_args && (ps_argsopen || !p_cansee(td, p))) { sbuf_bcpy(sb, p->p_args->ar_args, p->p_args->ar_length); PROC_UNLOCK(p); return (0); ==== //depot/projects/smpng/sys/fs/pseudofs/pseudofs_vnops.c#16 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/fs/pseudofs/pseudofs_vnops.c,v 1.26 2002/05/03 14:58:25 des Exp $ + * $FreeBSD: src/sys/fs/pseudofs/pseudofs_vnops.c,v 1.27 2002/05/19 00:14:48 jhb Exp $ */ #include @@ -86,7 +86,7 @@ if (pid != NO_PID) { if ((proc = pfind(pid)) == NULL) PFS_RETURN (0); - if (p_cansee(td->td_proc, proc) != 0 || + if (p_cansee(td, proc) != 0 || (pn->pn_vis != NULL && !(pn->pn_vis)(td, proc, pn))) r = 0; /* ==== //depot/projects/smpng/sys/fs/specfs/spec_vnops.c#14 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)spec_vnops.c 8.14 (Berkeley) 5/21/95 - * $FreeBSD: src/sys/fs/specfs/spec_vnops.c,v 1.169 2002/04/16 17:11:33 jhb Exp $ + * $FreeBSD: src/sys/fs/specfs/spec_vnops.c,v 1.170 2002/05/18 09:32:56 phk Exp $ */ #include @@ -686,18 +686,6 @@ * VOP_STRATEGY. XXX */ offset = IDX_TO_OFF(ap->a_m[0]->pindex) + ap->a_offset; - -#define DADDR_T_BIT (sizeof(daddr_t)*8) -#define OFFSET_MAX ((1LL << (DADDR_T_BIT + DEV_BSHIFT)) - 1) - - if (offset < 0 || offset > OFFSET_MAX) { - /* XXX still no %q in kernel. */ - printf("spec_getpages: preposterous offset 0x%x%08x\n", - (u_int)((u_quad_t)offset >> 32), - (u_int)(offset & 0xffffffff)); - return (VM_PAGER_ERROR); - } - blkno = btodb(offset); /* ==== //depot/projects/smpng/sys/gnu/ext2fs/ext2_alloc.c#6 (text+ko) ==== @@ -37,7 +37,7 @@ * SUCH DAMAGE. * * @(#)ffs_alloc.c 8.8 (Berkeley) 2/21/94 - * $FreeBSD: src/sys/gnu/ext2fs/ext2_alloc.c,v 1.35 2002/05/16 19:43:28 iedowse Exp $ + * $FreeBSD: src/sys/gnu/ext2fs/ext2_alloc.c,v 1.37 2002/05/18 21:33:07 iedowse Exp $ */ #include @@ -96,13 +96,13 @@ int ext2_alloc(ip, lbn, bpref, size, cred, bnp) struct inode *ip; - daddr_t lbn, bpref; + int32_t lbn, bpref; int size; struct ucred *cred; - daddr_t *bnp; + int32_t *bnp; { struct ext2_sb_info *fs; - daddr_t bno; + int32_t bno; *bnp = 0; fs = ip->i_e2fs; @@ -150,11 +150,11 @@ &ip->i_prealloc_count, &ip->i_prealloc_block); else - bno = (daddr_t)ext2_new_block(ITOV(ip)->v_mount, + bno = (int32_t)ext2_new_block(ITOV(ip)->v_mount, bpref, 0, 0); } #else - bno = (daddr_t)ext2_new_block(ITOV(ip)->v_mount, bpref, 0, 0); + bno = (int32_t)ext2_new_block(ITOV(ip)->v_mount, bpref, 0, 0); #endif if (bno > 0) { @@ -212,9 +212,9 @@ struct inode *ip; struct vnode *vp; struct buf *sbp, *ebp; - daddr_t *bap, *sbap, *ebap; + int32_t *bap, *sbap, *ebap; struct cluster_save *buflist; - daddr_t start_lbn, end_lbn, soff, eoff, newblk, blkno; + int32_t start_lbn, end_lbn, soff, eoff, newblk, blkno; struct indir start_ap[NIADDR + 1], end_ap[NIADDR + 1], *idp; int i, len, start_lvl, end_lvl, pref, ssize; @@ -257,7 +257,7 @@ brelse(sbp); return (ENOSPC); } - sbap = (daddr_t *)sbp->b_data; + sbap = (int32_t *)sbp->b_data; soff = idp->in_off; } /* @@ -277,12 +277,12 @@ ssize = len - (idp->in_off + 1); if (bread(vp, idp->in_lbn, (int)fs->s_blocksize, NOCRED, &ebp)) goto fail; - ebap = (daddr_t *)ebp->b_data; + ebap = (int32_t *)ebp->b_data; } /* * Search the block map looking for an allocation of the desired size. */ - if ((newblk = (daddr_t)ext2_hashalloc(ip, dtog(fs, pref), (long)pref, + if ((newblk = (int32_t)ext2_hashalloc(ip, dtog(fs, pref), (long)pref, len, (u_long (*)())ext2_clusteralloc)) == 0) goto fail; /* @@ -432,13 +432,13 @@ * of the above. Then, blocknr tells us the number of the block * that will hold the pointer */ -daddr_t +int32_t ext2_blkpref(ip, lbn, indx, bap, blocknr) struct inode *ip; - daddr_t lbn; + int32_t lbn; int indx; - daddr_t *bap; - daddr_t blocknr; + int32_t *bap; + int32_t blocknr; { int tmp; @@ -460,7 +460,7 @@ follow the rule that a block should be allocated near its inode */ return blocknr ? blocknr : - (daddr_t)(ip->i_block_group * + (int32_t)(ip->i_block_group * EXT2_BLOCKS_PER_GROUP(ip->i_e2fs)) + ip->i_e2fs->s_es->s_first_data_block; } @@ -473,7 +473,7 @@ void ext2_blkfree(ip, bno, size) struct inode *ip; - daddr_t bno; + int32_t bno; long size; { struct ext2_sb_info *fs; @@ -502,7 +502,7 @@ pip = VTOI(pvp); fs = pip->i_e2fs; - if ((u_int)ino >= fs->s_inodes_per_group * fs->s_groups_count) + if ((u_int)ino > fs->s_inodes_per_group * fs->s_groups_count) panic("ext2_vfree: range: dev = (%d, %d), ino = %d, fs = %s", major(pip->i_dev), minor(pip->i_dev), ino, fs->fs_fsmnt); ==== //depot/projects/smpng/sys/gnu/ext2fs/ext2_balloc.c#3 (text+ko) ==== @@ -37,7 +37,7 @@ * SUCH DAMAGE. * * @(#)ffs_balloc.c 8.4 (Berkeley) 9/23/93 - * $FreeBSD: src/sys/gnu/ext2fs/ext2_balloc.c,v 1.16 2002/05/16 19:43:28 iedowse Exp $ + * $FreeBSD: src/sys/gnu/ext2fs/ext2_balloc.c,v 1.17 2002/05/18 19:12:38 iedowse Exp $ */ #include @@ -62,18 +62,18 @@ int ext2_balloc(ip, bn, size, cred, bpp, flags) struct inode *ip; - daddr_t bn; + int32_t bn; int size; struct ucred *cred; struct buf **bpp; int flags; { struct ext2_sb_info *fs; - daddr_t nb; + int32_t nb; struct buf *bp, *nbp; struct vnode *vp = ITOV(ip); struct indir indirs[NIADDR + 2]; - daddr_t newb, lbn, *bap, pref; + int32_t newb, lbn, *bap, pref; int osize, nsize, num, i, error; /* ext2_debug("ext2_balloc called (%d, %d, %d)\n", @@ -174,7 +174,7 @@ nb = ip->i_ib[indirs[0].in_off]; if (nb == 0) { #if 0 - pref = ext2_blkpref(ip, lbn, 0, (daddr_t *)0, 0); + pref = ext2_blkpref(ip, lbn, 0, (int32_t *)0, 0); #else /* see the comment by ext2_blkpref. What we do here is to pretend that it'd be good for a block holding indirect @@ -218,7 +218,7 @@ brelse(bp); return (error); } - bap = (daddr_t *)bp->b_data; + bap = (int32_t *)bp->b_data; nb = bap[indirs[i].in_off]; if (i == num) break; @@ -238,7 +238,7 @@ pref = ext2_blkpref(ip, lbn, indirs[i].in_off, bap, bp->b_lblkno); #else - pref = ext2_blkpref(ip, lbn, 0, (daddr_t *)0, 0); + pref = ext2_blkpref(ip, lbn, 0, (int32_t *)0, 0); #endif if ((error = ext2_alloc(ip, lbn, pref, (int)fs->s_blocksize, cred, &newb)) != 0) { ==== //depot/projects/smpng/sys/gnu/ext2fs/ext2_bmap.c#2 (text+ko) ==== @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)ufs_bmap.c 8.7 (Berkeley) 3/21/95 - * $FreeBSD: src/sys/gnu/ext2fs/ext2_bmap.c,v 1.51 2002/05/14 17:14:01 iedowse Exp $ + * $FreeBSD: src/sys/gnu/ext2fs/ext2_bmap.c,v 1.52 2002/05/18 19:12:38 iedowse Exp $ */ #include @@ -69,7 +69,7 @@ int *a_runb; } */ *ap; { - daddr_t blkno; + int32_t blkno; int error; /* @@ -104,8 +104,8 @@ int ext2_bmaparray(vp, bn, bnp, runp, runb) struct vnode *vp; - daddr_t bn; - daddr_t *bnp; + int32_t bn; + int32_t *bnp; int *runp; int *runb; { @@ -115,7 +115,7 @@ struct mount *mp; struct vnode *devvp; struct indir a[NIADDR+1], *ap; - daddr_t daddr; + int32_t daddr; long metalbn; int error, num, maxrun = 0; int *nump; @@ -148,7 +148,7 @@ if (*bnp == 0) { *bnp = -1; } else if (runp) { - daddr_t bnb = bn; + int32_t bnb = bn; for (++bn; bn < NDADDR && *runp < maxrun && is_sequential(ump, ip->i_db[bn - 1], ip->i_db[bn]); ++bn, ++*runp); @@ -205,19 +205,19 @@ } } - daddr = ((daddr_t *)bp->b_data)[ap->in_off]; + daddr = ((int32_t *)bp->b_data)[ap->in_off]; if (num == 1 && daddr && runp) { for (bn = ap->in_off + 1; bn < MNINDIR(ump) && *runp < maxrun && is_sequential(ump, - ((daddr_t *)bp->b_data)[bn - 1], - ((daddr_t *)bp->b_data)[bn]); + ((int32_t *)bp->b_data)[bn - 1], + ((int32_t *)bp->b_data)[bn]); ++bn, ++*runp); bn = ap->in_off; if (runb && bn) { for(--bn; bn >= 0 && *runb < maxrun && - is_sequential(ump, ((daddr_t *)bp->b_data)[bn], - ((daddr_t *)bp->b_data)[bn+1]); + is_sequential(ump, ((int32_t *)bp->b_data)[bn], + ((int32_t *)bp->b_data)[bn+1]); --bn, ++*runb); } } @@ -255,7 +255,7 @@ int ext2_getlbns(vp, bn, ap, nump) struct vnode *vp; - daddr_t bn; + int32_t bn; struct indir *ap; int *nump; { ==== //depot/projects/smpng/sys/gnu/ext2fs/ext2_extern.h#6 (text+ko) ==== @@ -37,7 +37,7 @@ * SUCH DAMAGE. * * @(#)ffs_extern.h 8.3 (Berkeley) 4/16/94 - * $FreeBSD: src/sys/gnu/ext2fs/ext2_extern.h,v 1.27 2002/05/16 19:07:59 iedowse Exp $ + * $FreeBSD: src/sys/gnu/ext2fs/ext2_extern.h,v 1.29 2002/05/18 22:18:17 iedowse Exp $ */ #ifndef _SYS_GNU_EXT2FS_EXT2_EXTERN_H_ @@ -51,17 +51,17 @@ struct vnode; int ext2_alloc(struct inode *, - daddr_t, daddr_t, int, struct ucred *, daddr_t *); + int32_t, int32_t, int, struct ucred *, int32_t *); int ext2_balloc(struct inode *, - daddr_t, int, struct ucred *, struct buf **, int); + int32_t, int, struct ucred *, struct buf **, int); int ext2_blkatoff(struct vnode *, off_t, char **, struct buf **); -void ext2_blkfree(struct inode *, daddr_t, long); -daddr_t ext2_blkpref(struct inode *, daddr_t, int, daddr_t *, daddr_t); +void ext2_blkfree(struct inode *, int32_t, long); +int32_t ext2_blkpref(struct inode *, int32_t, int, int32_t *, int32_t); int ext2_bmap(struct vop_bmap_args *); -int ext2_bmaparray(struct vnode *, daddr_t, daddr_t *, int *, int *); +int ext2_bmaparray(struct vnode *, int32_t, int32_t *, int *, int *); void ext2_dirbad(struct inode *ip, doff_t offset, char *how); void ext2_ei2i(struct ext2_inode *, struct inode *); -int ext2_getlbns(struct vnode *, daddr_t, struct indir *, int *); +int ext2_getlbns(struct vnode *, int32_t, struct indir *, int *); void ext2_i2ei(struct inode *, struct ext2_inode *); int ext2_ihashget(dev_t, ino_t, int, struct vnode **); void ext2_ihashinit(void); @@ -69,10 +69,11 @@ struct vnode * ext2_ihashlookup(dev_t, ino_t); void ext2_ihashrem(struct inode *); +void ext2_ihashuninit(void); void ext2_itimes(struct vnode *vp); int ext2_reallocblks(struct vop_reallocblks_args *); int ext2_reclaim(struct vop_reclaim_args *); -void ext2_setblock(struct ext2_sb_info *, u_char *, daddr_t); +void ext2_setblock(struct ext2_sb_info *, u_char *, int32_t); int ext2_truncate(struct vnode *, off_t, int, struct ucred *, struct thread *); int ext2_update(struct vnode *, int); int ext2_valloc(struct vnode *, int, struct ucred *, struct vnode **); ==== //depot/projects/smpng/sys/gnu/ext2fs/ext2_ihash.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)ufs_ihash.c 8.7 (Berkeley) 5/17/95 - * $FreeBSD: src/sys/gnu/ext2fs/ext2_ihash.c,v 1.33 2002/05/14 17:14:01 iedowse Exp $ + * $FreeBSD: src/sys/gnu/ext2fs/ext2_ihash.c,v 1.34 2002/05/18 22:18:17 iedowse Exp $ */ #include @@ -62,11 +62,28 @@ ext2_ihashinit() { + KASSERT(ihashtbl == NULL, ("ext2_ihashinit called twice")); ihashtbl = hashinit(desiredvnodes, M_EXT2IHASH, &ihash); mtx_init(&ext2_ihash_mtx, "ext2 ihash", NULL, MTX_DEF); } /* + * Destroy the inode hash table. + */ +void +ext2_ihashuninit() +{ + struct ihashhead *hp; + + for (hp = ihashtbl; hp < &ihashtbl[ihash]; hp++) + if (!LIST_EMPTY(hp)) + panic("ext2_ihashuninit: ihash not empty"); + free(ihashtbl, M_EXT2IHASH); + ihashtbl = NULL; + mtx_destroy(&ext2_ihash_mtx); +} + +/* * Use the device/inum pair to find the incore inode, and return a pointer * to it. If it is in core, return it, even if it is locked. */ ==== //depot/projects/smpng/sys/gnu/ext2fs/ext2_inode.c#6 (text+ko) ==== @@ -37,7 +37,7 @@ * SUCH DAMAGE. * * @(#)ffs_inode.c 8.5 (Berkeley) 12/30/93 - * $FreeBSD: src/sys/gnu/ext2fs/ext2_inode.c,v 1.34 2002/05/16 19:43:28 iedowse Exp $ + * $FreeBSD: src/sys/gnu/ext2fs/ext2_inode.c,v 1.35 2002/05/18 19:12:38 iedowse Exp $ */ #include @@ -58,7 +58,7 @@ #include #include -static int ext2_indirtrunc(struct inode *, daddr_t, daddr_t, daddr_t, int, +static int ext2_indirtrunc(struct inode *, int32_t, int32_t, int32_t, int, long *); /* @@ -124,10 +124,10 @@ struct thread *td; { struct vnode *ovp = vp; - daddr_t lastblock; + int32_t lastblock; struct inode *oip; - daddr_t bn, lbn, lastiblock[NIADDR], indir_lbn[NIADDR]; - daddr_t oldblks[NDADDR + NIADDR], newblks[NDADDR + NIADDR]; + int32_t bn, lbn, lastiblock[NIADDR], indir_lbn[NIADDR]; + int32_t oldblks[NDADDR + NIADDR], newblks[NDADDR + NIADDR]; struct ext2_sb_info *fs; struct buf *bp; int offset, size, level; @@ -360,15 +360,15 @@ static int ext2_indirtrunc(ip, lbn, dbn, lastbn, level, countp) struct inode *ip; - daddr_t lbn, lastbn; - daddr_t dbn; + int32_t lbn, lastbn; + int32_t dbn; int level; long *countp; { struct buf *bp; struct ext2_sb_info *fs = ip->i_e2fs; struct vnode *vp; - daddr_t *bap, *copy, nb, nlbn, last; + int32_t *bap, *copy, nb, nlbn, last; long blkcount, factor; int i, nblocks, blocksreleased = 0; int error = 0, allerror = 0; @@ -411,11 +411,11 @@ return (error); } - bap = (daddr_t *)bp->b_data; - MALLOC(copy, daddr_t *, fs->s_blocksize, M_TEMP, M_WAITOK); + bap = (int32_t *)bp->b_data; + MALLOC(copy, int32_t *, fs->s_blocksize, M_TEMP, M_WAITOK); bcopy((caddr_t)bap, (caddr_t)copy, (u_int)fs->s_blocksize); bzero((caddr_t)&bap[last + 1], - (u_int)(NINDIR(fs) - (last + 1)) * sizeof (daddr_t)); + (u_int)(NINDIR(fs) - (last + 1)) * sizeof (int32_t)); if (last == -1) bp->b_flags |= B_INVAL; error = bwrite(bp); @@ -433,7 +433,7 @@ continue; if (level > SINGLE) { if ((error = ext2_indirtrunc(ip, nlbn, - fsbtodb(fs, nb), (daddr_t)-1, level - 1, &blkcount)) != 0) + fsbtodb(fs, nb), (int32_t)-1, level - 1, &blkcount)) != 0) allerror = error; blocksreleased += blkcount; } ==== //depot/projects/smpng/sys/gnu/ext2fs/ext2_subr.c#6 (text+ko) ==== @@ -37,7 +37,7 @@ * SUCH DAMAGE. * * @(#)ffs_subr.c 8.2 (Berkeley) 9/21/93 - * $FreeBSD: src/sys/gnu/ext2fs/ext2_subr.c,v 1.24 2002/05/16 19:43:28 iedowse Exp $ + * $FreeBSD: src/sys/gnu/ext2fs/ext2_subr.c,v 1.25 2002/05/18 19:12:38 iedowse Exp $ */ #include @@ -76,7 +76,7 @@ struct inode *ip; struct ext2_sb_info *fs; struct buf *bp; - daddr_t lbn; + int32_t lbn; int bsize, error; ip = VTOI(vp); @@ -102,7 +102,7 @@ struct inode *ip; { struct buf *ebp, *ep; - daddr_t start, last; + int32_t start, last; struct vnode *vp; ebp = &buf[nbuf]; ==== //depot/projects/smpng/sys/gnu/ext2fs/ext2_vfsops.c#15 (text+ko) ==== @@ -37,7 +37,7 @@ * SUCH DAMAGE. * * @(#)ffs_vfsops.c 8.8 (Berkeley) 4/18/94 - * $FreeBSD: src/sys/gnu/ext2fs/ext2_vfsops.c,v 1.94 2002/05/16 19:43:28 iedowse Exp $ + * $FreeBSD: src/sys/gnu/ext2fs/ext2_vfsops.c,v 1.96 2002/05/18 22:18:17 iedowse Exp $ */ #include @@ -75,6 +75,7 @@ static int ext2_sbupdate(struct ext2mount *, int); static int ext2_statfs(struct mount *, struct statfs *, struct thread *); static int ext2_sync(struct mount *, int, struct ucred *, struct thread *); +static int ext2_uninit(struct vfsconf *); static int ext2_unmount(struct mount *, int, struct thread *); static int ext2_vget(struct mount *, ino_t, int, struct vnode **); static int ext2_vptofh(struct vnode *, struct fid *); @@ -95,7 +96,7 @@ vfs_stdcheckexp, ext2_vptofh, ext2_init, - vfs_stduninit, + ext2_uninit, vfs_stdextattrctl, }; @@ -1116,7 +1117,7 @@ ufhp = (struct ufid *)fhp; fs = VFSTOEXT2(mp)->um_e2fs; if (ufhp->ufid_ino < ROOTINO || - ufhp->ufid_ino >= fs->s_groups_count * fs->s_es->s_inodes_per_group) + ufhp->ufid_ino > fs->s_groups_count * fs->s_es->s_inodes_per_group) return (ESTALE); error = VFS_VGET(mp, ufhp->ufid_ino, LK_EXCLUSIVE, &nvp); @@ -1207,12 +1208,15 @@ static int ext2_init(struct vfsconf *vfsp) { - static int done; - if (done) - return (0); - done = 1; ext2_ihashinit(); + return (0); +} +static int +ext2_uninit(struct vfsconf *vfsp) +{ + + ext2_ihashuninit(); return (0); } ==== //depot/projects/smpng/sys/gnu/ext2fs/ext2_vnops.c#9 (text+ko) ==== @@ -43,7 +43,7 @@ * * @(#)ufs_vnops.c 8.7 (Berkeley) 2/3/94 * @(#)ufs_vnops.c 8.27 (Berkeley) 5/27/95 - * $FreeBSD: src/sys/gnu/ext2fs/ext2_vnops.c,v 1.64 2002/05/16 19:43:28 iedowse Exp $ + * $FreeBSD: src/sys/gnu/ext2fs/ext2_vnops.c,v 1.65 2002/05/18 19:12:38 iedowse Exp $ */ #include "opt_suiddir.h" @@ -1556,7 +1556,7 @@ struct buf *bp = ap->a_bp; struct vnode *vp = ap->a_vp; struct inode *ip; - daddr_t blkno; + int32_t blkno; int error; ip = VTOI(vp); ==== //depot/projects/smpng/sys/gnu/ext2fs/inode.h#2 (text+ko) ==== @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)inode.h 8.9 (Berkeley) 5/14/95 - * $FreeBSD: src/sys/gnu/ext2fs/inode.h,v 1.37 2002/05/14 17:14:01 iedowse Exp $ + * $FreeBSD: src/sys/gnu/ext2fs/inode.h,v 1.38 2002/05/18 19:12:38 iedowse Exp $ >>> TRUNCATED FOR MAIL (1000 lines) <<< To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe p4-projects" in the body of the message