Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 18 May 2002 18:58:04 -0700 (PDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 11499 for review
Message-ID:  <200205190158.g4J1w4o03148@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
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 <sys/param.h>
@@ -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 <sys/param.h>
@@ -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/<arch>/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 <sys/param.h>
@@ -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 <sys/param.h>
@@ -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 <sys/param.h>
@@ -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 <sys/param.h>
@@ -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 <sys/param.h>
@@ -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 <sys/param.h>
@@ -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 <sys/param.h>
@@ -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 <sys/param.h>
@@ -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 <sys/param.h>
@@ -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 <sys/param.h>
@@ -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 <sys/param.h>
@@ -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 <sys/param.h>
@@ -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 <sys/param.h>
@@ -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 <sys/param.h>
@@ -58,7 +58,7 @@
 #include <gnu/ext2fs/fs.h>
 #include <gnu/ext2fs/ext2_extern.h>
 
-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 <sys/param.h>
@@ -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 <sys/param.h>
@@ -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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200205190158.g4J1w4o03148>