From owner-freebsd-fs@FreeBSD.ORG Mon Aug 16 16:30:26 2004 Return-Path: Delivered-To: freebsd-fs@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5FB6016A4CE for ; Mon, 16 Aug 2004 16:30:26 +0000 (GMT) Received: from mail.freebsd.org.cn (dns3.freebsd.org.cn [61.129.66.75]) by mx1.FreeBSD.org (Postfix) with SMTP id B9DC243D58 for ; Mon, 16 Aug 2004 16:30:24 +0000 (GMT) (envelope-from delphij@frontfree.net) Received: (qmail 44241 invoked by uid 0); 16 Aug 2004 16:27:39 -0000 Received: from unknown (HELO beastie.frontfree.net) (219.239.98.7) by mail.freebsd.org.cn with SMTP; 16 Aug 2004 16:27:39 -0000 Received: from localhost (localhost.frontfree.net [127.0.0.1]) by beastie.frontfree.net (Postfix) with ESMTP id 3C5F411710; Tue, 17 Aug 2004 00:30:20 +0800 (CST) Received: from beastie.frontfree.net ([127.0.0.1]) by localhost (beastie.frontfree.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 01419-07; Tue, 17 Aug 2004 00:30:18 +0800 (CST) Received: by beastie.frontfree.net (Postfix, from userid 1001) id 19BEE11774; Tue, 17 Aug 2004 00:30:17 +0800 (CST) Date: Tue, 17 Aug 2004 00:30:17 +0800 From: Xin LI To: re@FreeBSD.org, freebsd-fs@FreeBSD.org Message-ID: <20040816163017.GA2890@frontfree.net> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="/WwmFnJnmDyWGHa4" Content-Disposition: inline User-Agent: Mutt/1.4.2.1i X-GPG-key-ID/Fingerprint: 0xCAEEB8C0 / 43B8 B703 B8DD 0231 B333 DC28 39FB 93A0 CAEE B8C0 X-GPG-Public-Key: http://www.delphij.net/delphij.asc X-Operating-System: FreeBSD beastie.frontfree.net 5.2-delphij FreeBSD 5.2-delphij #3: Fri Jul 30 20:01:43 CST 2004 delphij@beastie.frontfree.net:/usr/obj/usr/src/sys/BEASTIE i386 X-URL: http://www.delphij.net X-By: delphij@beastie.frontfree.net X-Location: Beijing, China X-Virus-Scanned: by amavisd-new at frontfree.net Subject: [PATCH] Generalize BAD_MAGIC usage so it will apply to UFS1 too X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Aug 2004 16:30:26 -0000 --/WwmFnJnmDyWGHa4 Content-Type: multipart/mixed; boundary="J2SCkAp4GZ/dPZZf" Content-Disposition: inline --J2SCkAp4GZ/dPZZf Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi, Here is a patch which will generalize UFS2's BAD FLAG to UFS1 initialization as well. Cheers, --=20 Xin LI http://www.delphij.net/ See complete headers for GPG key and other information. --J2SCkAp4GZ/dPZZf Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=patch-ufs2 Content-Transfer-Encoding: quoted-printable Index: src/sbin/fsck_ffs/setup.c diff -u src/sbin/fsck_ffs/setup.c:1.47 src/sbin/fsck_ffs/setup.c:1.47.1000.1 --- src/sbin/fsck_ffs/setup.c:1.47 Sat Apr 10 03:58:28 2004 +++ src/sbin/fsck_ffs/setup.c Wed May 12 05:53:32 2004 @@ -306,7 +306,7 @@ super =3D bflag; if ((bread(fsreadfd, (char *)&sblock, super, (long)SBLOCKSIZE))) return (0); - if (sblock.fs_magic =3D=3D FS_BAD2_MAGIC) { + if (sblock.fs_magic =3D=3D FS_BAD_MAGIC) { fprintf(stderr, BAD_MAGIC_MSG); exit(11); } @@ -322,7 +322,7 @@ if ((bread(fsreadfd, (char *)&sblock, super, (long)SBLOCKSIZE))) return (0); - if (sblock.fs_magic =3D=3D FS_BAD2_MAGIC) { + if (sblock.fs_magic =3D=3D FS_BAD_MAGIC) { fprintf(stderr, BAD_MAGIC_MSG); exit(11); } Index: src/sbin/newfs/mkfs.c diff -u src/sbin/newfs/mkfs.c:1.85 src/sbin/newfs/mkfs.c:1.85.1000.1 --- src/sbin/newfs/mkfs.c:1.85 Sat Apr 10 03:58:33 2004 +++ src/sbin/newfs/mkfs.c Wed May 12 05:53:36 2004 @@ -236,8 +236,14 @@ } sblock.fs_fsbtodb =3D ilog2(sblock.fs_fsize / sectorsize); sblock.fs_size =3D fssize =3D dbtofsb(&sblock, fssize); + + /* + * Before the filesystem is finally initialized, mark it + * as incompletely initialized. + */ + sblock.fs_magic =3D FS_BAD_MAGIC; + if (Oflag =3D=3D 1) { - sblock.fs_magic =3D FS_UFS1_MAGIC; sblock.fs_sblockloc =3D SBLOCK_UFS1; sblock.fs_nindir =3D sblock.fs_bsize / sizeof(ufs1_daddr_t); sblock.fs_inopb =3D sblock.fs_bsize / sizeof(struct ufs1_dinode); @@ -257,7 +263,6 @@ sblock.fs_old_postblformat =3D 1; sblock.fs_old_nrpos =3D 1; } else { - sblock.fs_magic =3D FS_BAD2_MAGIC; sblock.fs_sblockloc =3D SBLOCK_UFS2; sblock.fs_nindir =3D sblock.fs_bsize / sizeof(ufs2_daddr_t); sblock.fs_inopb =3D sblock.fs_bsize / sizeof(struct ufs2_dinode); @@ -455,8 +460,8 @@ } if (Eflag =3D=3D 2) printf("** Leaving BAD MAGIC on Eflag 2\n"); - else if (Oflag !=3D 1) - sblock.fs_magic =3D FS_UFS2_MAGIC; + else + sblock.fs_magic =3D (Oflag !=3D 1) ? FS_UFS2_MAGIC : FS_UFS1_MAGIC; =20 /* * Now build the cylinders group blocks and Index: src/sys/ufs/ffs/fs.h diff -u src/sys/ufs/ffs/fs.h:1.43 src/sys/ufs/ffs/fs.h:1.42.1000.2 --- src/sys/ufs/ffs/fs.h:1.43 Tue Jun 1 00:53:46 2004 +++ src/sys/ufs/ffs/fs.h Tue Jun 1 22:52:01 2004 @@ -357,7 +357,7 @@ */ #define FS_UFS1_MAGIC 0x011954 /* UFS1 fast filesystem magic number */ #define FS_UFS2_MAGIC 0x19540119 /* UFS2 fast filesystem magic number */ -#define FS_BAD2_MAGIC 0x19960408 /* UFS2 incomplete newfs magic number */ +#define FS_BAD_MAGIC 0x19960408 /* UFS incomplete newfs magic number */ #define FS_OKAY 0x7c269d38 /* superblock checksum */ #define FS_42INODEFMT -1 /* 4.2BSD inode format */ #define FS_44INODEFMT 2 /* 4.4BSD inode format */ --J2SCkAp4GZ/dPZZf-- --/WwmFnJnmDyWGHa4 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (FreeBSD) iD8DBQFBIOEZOfuToMruuMARAjQXAJwKkqVJEWKeBhI2gEKXJC1mmyhS9gCdFiB+ 0qFHkRWg8TgAwTYh7p9CYJY= =+Q3z -----END PGP SIGNATURE----- --/WwmFnJnmDyWGHa4--