From owner-FreeBSD-users-jp@jp.freebsd.org  Tue Mar 30 09:54:41 1999
Received: (from daemon@localhost)
	by jaz.jp.freebsd.org (8.9.2+3.1W/8.7.3) id JAA04447;
	Tue, 30 Mar 1999 09:54:41 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from bulls.mei.co.jp (bulls.mei.co.jp [202.224.189.102])
	by jaz.jp.freebsd.org (8.9.2+3.1W/8.7.3) with ESMTP id JAA04439
	for <FreeBSD-users-jp@jp.freebsd.org>; Tue, 30 Mar 1999 09:54:39 +0900 (JST)
	(envelope-from akiyama@kme.mei.co.jp)
Received: by bulls.mei.co.jp (8.9.1/3.7W) with ESMTP id JAA08689
	for <FreeBSD-users-jp@jp.freebsd.org>; Tue, 30 Mar 1999 09:54:07 +0900 (JST)
Received: by dodgers.mei.co.jp (8.9.1/3.7W) with ESMTP id JAA00746
	for <FreeBSD-users-jp@jp.freebsd.org>; Tue, 30 Mar 1999 09:54:07 +0900 (JST)
Received: from kmegate.kme.mei.co.jp (kmegate.kme.mei.co.jp [133.181.109.205])
	by kmegate.kme.mei.co.jp (8.9.2/3.7W-99012115) with ESMTP id JAA23266
	for <FreeBSD-users-jp@jp.freebsd.org>; Tue, 30 Mar 1999 09:54:05 +0900 (JST)
Date: Tue, 30 Mar 1999 09:54:04 +0900
Message-ID: <14080.8364.116441.74466C@kmegate.kme.mei.co.jp>
From: Shunsuke Akiyama <akiyama@kme.mei.co.jp>
To: FreeBSD-users-jp@jp.freebsd.org
In-Reply-To: In your message of "Mon, 29 Mar 1999 08:57:29 +0900"
	<19990329085729.B63465@cg.ie.niigata-u.ac.jp>
References: <19990329085729.B63465@cg.ie.niigata-u.ac.jp>
User-Agent: Wanderlust/0.9.7 (Everything She Wants) SEMI/1.13.3 (Komaiko) FLIM/1.12.5 (Hirahata) MULE/2.3 (SUETSUMUHANA) (based on Emacs 19.34)
MIME-Version: 1.0 (generated by SEMI 1.13.3 - "Komaiko")
Content-Type: text/plain; charset=ISO-2022-JP
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+981115
X-Sequence: FreeBSD-users-jp 40351
Subject: [FreeBSD-users-jp 40351] Re: 640MB MO
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: akiyama@kme.mei.co.jp

$B$"$-$d$^$G$9!#(B

At Mon, 29 Mar 1999 08:57:29 +0900,
IMAI Hiroei <imai@cg.ie.niigata-u.ac.jp> wrote:

> $B$$$^$^$G!$(B2.2.5-stable + od driver patch $B$G1?MQ$7$F$-$?%5!<%P$r!$(B
> $B:G6a(B 3.1-stable $B$K%P!<%8%g%s%"%C%W$7$?$N$G$9$,!$(B
> 2.2.5-stable $B$G=q$-9~$s$@(B 640MB $B$N(B MO $B$,$&$^$/FI$_=q$-$G$-$:$K(B
> $B:$$C$F$$$^$9!%(B

$BB?J,!"F1MM$NLdBj$G:$$C$F$$$k?M$b$$$k$H;W$&$s$G!"$H$j$"$($:=P$7$H$-$^$9!#(B
$BE:IU$N%Q%C%A$rEv$F$F$+$i!"%+!<%M%k!&%3%s%U%#%0%l!<%7%g%s!&%U%!%$%k$K(B

  options FFS_COMPAT_XXXXBSD

$B$rDI2C$7$F%+!<%M%k$N:F9=C[!?%$%s%9%H!<%k$r9T$C$F$_$F$/$@$5$$!#(B
$B$*$=$i$/!"$3$l$G9T$1$k$H;W$$$^$9!#(B
$B$?$@$7!"(B3.1-STABLE $B$KBP$7$F$N%Q%C%A$J$N$G!"AGD>$K$OEv$?$i$J$$$+$b$7$l(B
$B$^$;$s!#$=$N>l9g$O!"4hD%$C$F<j$GEv$F$F$/$@$5$$!#(B
-- 
	$B=);3=SJe(B
	akiyama@kme.mei.co.jp

---- Cut Here --------------------------------------------------------
cvs diff: Diffing src/sys/ufs
cvs diff: Diffing src/sys/ufs/ffs
Index: src/sys/ufs/ffs/ffs_vfsops.c
===================================================================
RCS file: /proj/cvs/src/sys/ufs/ffs/ffs_vfsops.c,v
retrieving revision 1.95
diff -u -r1.95 ffs_vfsops.c
--- ffs_vfsops.c	1999/01/07 16:14:17	1.95
+++ ffs_vfsops.c	1999/02/26 10:41:01
@@ -35,6 +35,7 @@
  */
 
 #include "opt_quota.h"
+#include "opt_ffs.h"
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -435,7 +436,9 @@
 	struct csum *space;
 	struct buf *bp;
 	struct fs *fs, *newfs;
+#ifndef FFS_COMPAT_XXXXBSD
 	struct partinfo dpart;
+#endif
 	dev_t dev;
 	int i, blks, size, error;
 	int32_t *lp;
@@ -468,10 +471,14 @@
 	/*
 	 * Step 2: re-read superblock from disk.
 	 */
+#ifndef FFS_COMPAT_XXXXBSD
 	if (VOP_IOCTL(devvp, DIOCGPART, (caddr_t)&dpart, FREAD, NOCRED, p) != 0)
 		size = DEV_BSIZE;
 	else
 		size = dpart.disklab->d_secsize;
+#else
+	size = DEV_BSIZE;
+#endif
 	if (error = bread(devvp, (ufs_daddr_t)(SBOFF/size), SBSIZE, NOCRED,&bp))
 		return (error);
 	newfs = (struct fs *)bp->b_data;
@@ -494,6 +501,10 @@
 	brelse(bp);
 	mp->mnt_maxsymlinklen = fs->fs_maxsymlinklen;
 	ffs_oldfscompat(fs);
+#ifdef FFS_COMPAT_XXXXBSD
+	/* XXX bread assumes b_blkno in DEV_BSIZE unit, calculate fsbtodb */
+	fs->fs_fsbtodb = ffs(fs->fs_fsize / DEV_BSIZE) - 1;
+#endif
 
 	/*
 	 * Step 3: re-read summary information from disk.
@@ -579,7 +590,9 @@
 	struct buf *bp;
 	register struct fs *fs;
 	dev_t dev;
+#ifndef FFS_COMPAT_XXXXBSD
 	struct partinfo dpart;
+#endif
 	caddr_t base, space;
 	int error, i, blks, size, ronly;
 	int32_t *lp;
@@ -627,10 +640,14 @@
 	if (error)
 		return (error);
 
+#ifndef FFS_COMPAT_XXXXBSD
 	if (VOP_IOCTL(devvp, DIOCGPART, (caddr_t)&dpart, FREAD, cred, p) != 0)
 		size = DEV_BSIZE;
 	else
 		size = dpart.disklab->d_secsize;
+#else
+	size = DEV_BSIZE;
+#endif
 
 	bp = NULL;
 	ump = NULL;
@@ -663,6 +680,10 @@
 		error = EROFS;          /* needs translation */
 		goto out;
 	}
+#ifdef FFS_COMPAT_XXXXBSD
+	/* XXX bread assumes b_blkno in DEV_BSIZE unit, calculate fsbtodb */
+	fs->fs_fsbtodb = ffs(fs->fs_fsize / DEV_BSIZE) - 1;
+#endif
 	ump = malloc(sizeof *ump, M_UFSMNT, M_WAITOK);
 	bzero((caddr_t)ump, sizeof *ump);
 	ump->um_malloctype = malloctype;
@@ -1292,6 +1313,12 @@
 		lp[0] = tmp;					/* XXX */
 	}							/* XXX */
 	dfs->fs_maxfilesize = mp->um_savedmaxfilesize;		/* XXX */
+
+#ifdef FFS_COMPAT_XXXXBSD
+	/* XXX restore fsbtodb which was modified for fixed b_blkno unit */
+	((struct fs *)bp->b_data)->fs_fsbtodb = ffs(fs->fs_nspf) - 1;
+#endif
+
 	if (waitfor != MNT_WAIT)
 		bawrite(bp);
 	else if (error = bwrite(bp))
cvs diff: Diffing src/sys/ufs/mfs
cvs diff: Diffing src/sys/ufs/ufs
----------------------------------------------------------------------
