From nobody@FreeBSD.org  Fri Jan 29 14:57:07 2010
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 81B191065692
	for <freebsd-gnats-submit@FreeBSD.org>; Fri, 29 Jan 2010 14:57:06 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21])
	by mx1.freebsd.org (Postfix) with ESMTP id 70B328FC1A
	for <freebsd-gnats-submit@FreeBSD.org>; Fri, 29 Jan 2010 14:57:06 +0000 (UTC)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.3/8.14.3) with ESMTP id o0TEv5aL077317
	for <freebsd-gnats-submit@FreeBSD.org>; Fri, 29 Jan 2010 14:57:05 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.3/8.14.3/Submit) id o0TEv5M9077316;
	Fri, 29 Jan 2010 14:57:05 GMT
	(envelope-from nobody)
Message-Id: <201001291457.o0TEv5M9077316@www.freebsd.org>
Date: Fri, 29 Jan 2010 14:57:05 GMT
From: "Pedro F. Giffuni" <giffunip@tutopia.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: extfs minor header cleanups to better match NetBSD/UFS
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         143345
>Category:       kern
>Synopsis:       [ext2fs] [patch] extfs minor header cleanups to better match NetBSD/UFS
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-fs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jan 29 15:00:19 UTC 2010
>Closed-Date:    Sun Jan 02 11:02:50 UTC 2011
>Last-Modified:  Sun Jan 02 11:02:50 UTC 2011
>Originator:     Pedro F. Giffuni
>Release:        8.0-Release + BSD ext2fs
>Organization:
>Environment:
FreeBSD mogwai.giffuni.net 8.0-RELEASE FreeBSD 8.0-RELEASE #13: Sat Jan  9 20:39:47 UTC 2010     pedro@mogwai.giffuni.net:/usr/src/sys/i386/compile/GENERIC  i386

>Description:
Some changes in the headers for better compatibility with NetBSD:

- Move special inode numbers from ext2fs.h to ext2_dinode.h
- Re-sort ext2_dinode.h to make more consistent with the NetBSD
 (UFS derived) file.
- Minor re-sort to ext2fs.h to better match the NetBSD equivalent.
- Add the prealloc fields to the superblock struct as in NetBSD.
- Add one more compat definition as in NetBSD rev. 1.29
- Cleanup #endif comments

These changes have no effect on the fs code but are important for
porting the userland utilities (fsck and newfs) from NetBSD.
>How-To-Repeat:

>Fix:
diff -ru ext2fs.bsd/ext2_dinode.h ext2fs/ext2_dinode.h
--- ext2fs.bsd/ext2_dinode.h	2010-01-17 19:01:35.000000000 +0000
+++ ext2fs/ext2_dinode.h	2010-01-29 09:46:44.000000000 +0000
@@ -29,21 +29,19 @@
 #ifndef _FS_EXT2FS_EXT2_DINODE_H_
 #define _FS_EXT2FS_EXT2_DINODE_H_
 
-#define e2di_size_high	e2di_dacl
-
 /*
- * Inode flags
- * The current implementation uses only EXT2_IMMUTABLE and EXT2_APPEND flags
+ * Special inode numbers
+ * The root inode is the root of the file system.  Inode 0 can't be used for
+ * normal purposes and bad blocks are normally linked to inode 1, thus
+ * the root inode is 2.
+ * Inode 3 to 10 are reserved in ext2fs.
  */
-#define EXT2_SECRM		0x00000001	/* Secure deletion */
-#define EXT2_UNRM		0x00000002	/* Undelete */
-#define EXT2_COMPR		0x00000004	/* Compress file */
-#define EXT2_SYNC		0x00000008	/* Synchronous updates */
-#define EXT2_IMMUTABLE		0x00000010	/* Immutable file */
-#define EXT2_APPEND		0x00000020	/* writes to file may only append */
-#define EXT2_NODUMP		0x00000040	/* do not dump file */
-#define EXT2_NOATIME		0x00000080	/* do not update atime */
+#define EXT2_BAD_INO		 1	/* Bad blocks inode */
+#define EXT2_ROOT_INO		 2	/* Root inode */
+#define EXT2_BOOT_LOADER_INO	 5	/* Boot loader inode */
+#define EXT2_UNDEL_DIR_INO	 6	/* Undelete directory inode */
 
+#define e2di_size_high	e2di_dacl
 
 /*
  * Structure of an inode on the disk
@@ -74,5 +72,18 @@
 	u_int32_t	e2di_linux_reserved3; /* 124 */
 };
 
-#endif /* _FS_EXT2FS_EXT2_DINODE_H_ */
+/*
+ * Inode flags
+ * The current implementation uses only EXT2_IMMUTABLE and EXT2_APPEND flags
+ */
+#define EXT2_SECRM		0x00000001	/* Secure deletion */
+#define EXT2_UNRM		0x00000002	/* Undelete */
+#define EXT2_COMPR		0x00000004	/* Compress file */
+#define EXT2_SYNC		0x00000008	/* Synchronous updates */
+#define EXT2_IMMUTABLE		0x00000010	/* Immutable file */
+#define EXT2_APPEND		0x00000020	/* writes to file may only append */
+#define EXT2_NODUMP		0x00000040	/* do not dump file */
+#define EXT2_NOATIME		0x00000080	/* do not update atime */
+
+#endif /* !_FS_EXT2FS_EXT2_DINODE_H_ */
 
diff -ru ext2fs.bsd/ext2fs.h ext2fs/ext2fs.h
--- ext2fs.bsd/ext2fs.h	2010-01-17 19:03:08.000000000 +0000
+++ ext2fs/ext2fs.h	2010-01-29 09:34:32.000000000 +0000
@@ -39,22 +39,6 @@
 
 #include <sys/types.h>
 
-/*
- * Special inode numbers
- */
-#define	EXT2_BAD_INO		 1	/* Bad blocks inode */
-#define EXT2_ROOT_INO		 2	/* Root inode */
-#define EXT2_BOOT_LOADER_INO	 5	/* Boot loader inode */
-#define EXT2_UNDEL_DIR_INO	 6	/* Undelete directory inode */
-
-/* First non-reserved inode for old ext2 filesystems */
-#define E2FS_REV0_FIRST_INO	11
-
-/*
- * The second extended file system magic number
- */
-#define E2FS_MAGIC		0xEF53
-
 #if defined(_KERNEL)
 /*
  * FreeBSD passes the pointer to the in-core struct with relevant
@@ -129,7 +113,9 @@
 	u_int8_t   e2fs_uuid[16];	/* 128-bit uuid for volume */
 	char       e2fs_vname[16];	/* volume name */
 	char       e2fs_fsmnt[64]; 	/* name mounted on */
-	u_int32_t  e2fs_algo;		/* For comcate for dir */
+	u_int32_t  e2fs_algo;		/* for compression */
+	uint8_t	   e2fs_prealloc;	/* # of blocks to preallocate */
+	uint8_t	   e2fs_dir_prealloc;	/* # of blocks to preallocate for dir */
 	u_int16_t  e2fs_reserved_ngdb; /* # of reserved gd blocks for resize */
 	u_int32_t  reserved2[204];
 };
@@ -153,8 +139,8 @@
 	uint32_t e2fs_bshift;     /* calc of logical block no */
 	int32_t e2fs_bmask;       /* calc of block offset */
 	int32_t e2fs_bpg;         /* Number of blocks per group */
-	int64_t e2fs_qbmask;       /* = s_blocksize -1 */
-	uint32_t e2fs_fsbtodb;     /* Shift to get disk block */
+	int64_t e2fs_qbmask;      /* = s_blocksize -1 */
+	uint32_t e2fs_fsbtodb;    /* Shift to get disk block */
 	uint32_t e2fs_ipg;        /* Number of inodes per group */
 	uint32_t e2fs_ipb;        /* Number of inodes per block */
 	uint32_t e2fs_itpg;       /* Number of inode table per group */
@@ -169,8 +155,8 @@
 	int32_t  e2fs_isize;      /* Size of inode */
 	uint32_t e2fs_mount_opt;
 	uint32_t e2fs_blocksize_bits;
+	uint8_t	*e2fs_contigdirs; /* (u) # of contig. allocated dirs */
 	uint32_t e2fs_total_dir;  /* Total number of directories */
-	uint8_t	*e2fs_contigdirs;
 	char e2fs_wasvalid;       /* valid at mount time */
 	off_t e2fs_maxfilesize;
 	struct ext2_gd *e2fs_gd; /* Group Descriptors */
@@ -182,6 +168,14 @@
 #define E2FS_DATE		"95/08/09"
 #define E2FS_VERSION		"0.5b"
 
+/* First non-reserved inode for old ext2 filesystems */
+#define E2FS_REV0_FIRST_INO	11
+
+/*
+ * The second extended file system magic number
+ */
+#define E2FS_MAGIC		0xEF53
+
 /*
  * Revision levels
  */
@@ -197,6 +191,7 @@
  * compatible/incompatible features
  */
 #define EXT2F_COMPAT_PREALLOC		0x0001
+#define EXT2F_COMPAT_HASJOURNAL		0x0004
 #define EXT2F_COMPAT_RESIZE		0x0010
 
 #define EXT2F_ROCOMPAT_SPARSESUPER	0x0001
@@ -326,4 +321,4 @@
 
 #endif
 
-#endif	/* _LINUX_EXT2_FS_H */
+#endif	/* !_FS_EXT2FS_EXT2FS_H */


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->freebsd-fs 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Fri Jan 29 18:48:20 UTC 2010 
Responsible-Changed-Why:  
Over to maintainer(s). 

http://www.freebsd.org/cgi/query-pr.cgi?pr=143345 

From: "Pedro F. Giffuni" <giffunip@tutopia.com>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/143345: [ext2fs] [patch] extfs minor header cleanups to better match NetBSD/UFS
Date: Sun, 28 Mar 2010 18:58:57 -0700 (PDT)

 --0-155324898-1269827937=:26301
 Content-Type: text/plain; charset=utf-8
 Content-Transfer-Encoding: quoted-printable
 
 I simplified the patch by avoiding unnecessary changes.=0A =0A=0A=0A      
 --0-155324898-1269827937=:26301
 Content-Type: application/octet-stream; name=patch-ext2fs-headers
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment; filename="patch-ext2fs-headers"
 
 LS0tIGV4dDJmcy5ic2QvZXh0Ml9kaW5vZGUuaAkyMDEwLTAxLTE3IDE5OjAx
 OjM1LjAwMDAwMDAwMCArMDAwMAorKysgZXh0MmZzL2V4dDJfZGlub2RlLmgJ
 MjAxMC0wMy0yOCAyMDo1MzoxMC4wMDAwMDAwMDAgKzAwMDAKQEAgLTMyLDYg
 KzMyLDE4IEBACiAjZGVmaW5lIGUyZGlfc2l6ZV9oaWdoCWUyZGlfZGFjbAog
 CiAvKgorICogU3BlY2lhbCBpbm9kZSBudW1iZXJzCisgKiBUaGUgcm9vdCBp
 bm9kZSBpcyB0aGUgcm9vdCBvZiB0aGUgZmlsZSBzeXN0ZW0uICBJbm9kZSAw
 IGNhbid0IGJlIHVzZWQgZm9yCisgKiBub3JtYWwgcHVycG9zZXMgYW5kIGJh
 ZCBibG9ja3MgYXJlIG5vcm1hbGx5IGxpbmtlZCB0byBpbm9kZSAxLCB0aHVz
 CisgKiB0aGUgcm9vdCBpbm9kZSBpcyAyLgorICogSW5vZGUgMyB0byAxMCBh
 cmUgcmVzZXJ2ZWQgaW4gZXh0MmZzLgorICovCisjZGVmaW5lIEVYVDJfQkFE
 X0lOTwkJIDEJLyogQmFkIGJsb2NrcyBpbm9kZSAqLworI2RlZmluZSBFWFQy
 X1JPT1RfSU5PCQkgMgkvKiBSb290IGlub2RlICovCisjZGVmaW5lIEVYVDJf
 Qk9PVF9MT0FERVJfSU5PCSA1CS8qIEJvb3QgbG9hZGVyIGlub2RlICovCisj
 ZGVmaW5lIEVYVDJfVU5ERUxfRElSX0lOTwkgNgkvKiBVbmRlbGV0ZSBkaXJl
 Y3RvcnkgaW5vZGUgKi8KKworLyoKICAqIElub2RlIGZsYWdzCiAgKiBUaGUg
 Y3VycmVudCBpbXBsZW1lbnRhdGlvbiB1c2VzIG9ubHkgRVhUMl9JTU1VVEFC
 TEUgYW5kIEVYVDJfQVBQRU5EIGZsYWdzCiAgKi8KQEAgLTc0LDUgKzg2LDUg
 QEAKIAl1X2ludDMyX3QJZTJkaV9saW51eF9yZXNlcnZlZDM7IC8qIDEyNCAq
 LwogfTsKIAotI2VuZGlmIC8qIF9GU19FWFQyRlNfRVhUMl9ESU5PREVfSF8g
 Ki8KKyNlbmRpZiAvKiAhX0ZTX0VYVDJGU19FWFQyX0RJTk9ERV9IXyAqLwog
 Ci0tLSBleHQyZnMuYnNkL2V4dDJmcy5oCTIwMTAtMDEtMTcgMTk6MDM6MDgu
 MDAwMDAwMDAwICswMDAwCisrKyBleHQyZnMvZXh0MmZzLmgJMjAxMC0wMS0y
 OSAwOTozNDozMi4wMDAwMDAwMDAgKzAwMDAKQEAgLTM5LDIyICszOSw2IEBA
 CiAKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KIAotLyoKLSAqIFNwZWNpYWwg
 aW5vZGUgbnVtYmVycwotICovCi0jZGVmaW5lCUVYVDJfQkFEX0lOTwkJIDEJ
 LyogQmFkIGJsb2NrcyBpbm9kZSAqLwotI2RlZmluZSBFWFQyX1JPT1RfSU5P
 CQkgMgkvKiBSb290IGlub2RlICovCi0jZGVmaW5lIEVYVDJfQk9PVF9MT0FE
 RVJfSU5PCSA1CS8qIEJvb3QgbG9hZGVyIGlub2RlICovCi0jZGVmaW5lIEVY
 VDJfVU5ERUxfRElSX0lOTwkgNgkvKiBVbmRlbGV0ZSBkaXJlY3RvcnkgaW5v
 ZGUgKi8KLQotLyogRmlyc3Qgbm9uLXJlc2VydmVkIGlub2RlIGZvciBvbGQg
 ZXh0MiBmaWxlc3lzdGVtcyAqLwotI2RlZmluZSBFMkZTX1JFVjBfRklSU1Rf
 SU5PCTExCi0KLS8qCi0gKiBUaGUgc2Vjb25kIGV4dGVuZGVkIGZpbGUgc3lz
 dGVtIG1hZ2ljIG51bWJlcgotICovCi0jZGVmaW5lIEUyRlNfTUFHSUMJCTB4
 RUY1MwotCiAjaWYgZGVmaW5lZChfS0VSTkVMKQogLyoKICAqIEZyZWVCU0Qg
 cGFzc2VzIHRoZSBwb2ludGVyIHRvIHRoZSBpbi1jb3JlIHN0cnVjdCB3aXRo
 IHJlbGV2YW50CkBAIC0xMjksNyArMTEzLDkgQEAKIAl1X2ludDhfdCAgIGUy
 ZnNfdXVpZFsxNl07CS8qIDEyOC1iaXQgdXVpZCBmb3Igdm9sdW1lICovCiAJ
 Y2hhciAgICAgICBlMmZzX3ZuYW1lWzE2XTsJLyogdm9sdW1lIG5hbWUgKi8K
 IAljaGFyICAgICAgIGUyZnNfZnNtbnRbNjRdOyAJLyogbmFtZSBtb3VudGVk
 IG9uICovCi0JdV9pbnQzMl90ICBlMmZzX2FsZ287CQkvKiBGb3IgY29tY2F0
 ZSBmb3IgZGlyICovCisJdV9pbnQzMl90ICBlMmZzX2FsZ287CQkvKiBmb3Ig
 Y29tcHJlc3Npb24gKi8KKwl1aW50OF90CSAgIGUyZnNfcHJlYWxsb2M7CS8q
 ICMgb2YgYmxvY2tzIHRvIHByZWFsbG9jYXRlICovCisJdWludDhfdAkgICBl
 MmZzX2Rpcl9wcmVhbGxvYzsJLyogIyBvZiBibG9ja3MgdG8gcHJlYWxsb2Nh
 dGUgZm9yIGRpciAqLwogCXVfaW50MTZfdCAgZTJmc19yZXNlcnZlZF9uZ2Ri
 OyAvKiAjIG9mIHJlc2VydmVkIGdkIGJsb2NrcyBmb3IgcmVzaXplICovCiAJ
 dV9pbnQzMl90ICByZXNlcnZlZDJbMjA0XTsKIH07CkBAIC0xNTMsOCArMTM5
 LDggQEAKIAl1aW50MzJfdCBlMmZzX2JzaGlmdDsgICAgIC8qIGNhbGMgb2Yg
 bG9naWNhbCBibG9jayBubyAqLwogCWludDMyX3QgZTJmc19ibWFzazsgICAg
 ICAgLyogY2FsYyBvZiBibG9jayBvZmZzZXQgKi8KIAlpbnQzMl90IGUyZnNf
 YnBnOyAgICAgICAgIC8qIE51bWJlciBvZiBibG9ja3MgcGVyIGdyb3VwICov
 Ci0JaW50NjRfdCBlMmZzX3FibWFzazsgICAgICAgLyogPSBzX2Jsb2Nrc2l6
 ZSAtMSAqLwotCXVpbnQzMl90IGUyZnNfZnNidG9kYjsgICAgIC8qIFNoaWZ0
 IHRvIGdldCBkaXNrIGJsb2NrICovCisJaW50NjRfdCBlMmZzX3FibWFzazsg
 ICAgICAvKiA9IHNfYmxvY2tzaXplIC0xICovCisJdWludDMyX3QgZTJmc19m
 c2J0b2RiOyAgICAvKiBTaGlmdCB0byBnZXQgZGlzayBibG9jayAqLwogCXVp
 bnQzMl90IGUyZnNfaXBnOyAgICAgICAgLyogTnVtYmVyIG9mIGlub2RlcyBw
 ZXIgZ3JvdXAgKi8KIAl1aW50MzJfdCBlMmZzX2lwYjsgICAgICAgIC8qIE51
 bWJlciBvZiBpbm9kZXMgcGVyIGJsb2NrICovCiAJdWludDMyX3QgZTJmc19p
 dHBnOyAgICAgICAvKiBOdW1iZXIgb2YgaW5vZGUgdGFibGUgcGVyIGdyb3Vw
 ICovCkBAIC0xNjksOCArMTU1LDggQEAKIAlpbnQzMl90ICBlMmZzX2lzaXpl
 OyAgICAgIC8qIFNpemUgb2YgaW5vZGUgKi8KIAl1aW50MzJfdCBlMmZzX21v
 dW50X29wdDsKIAl1aW50MzJfdCBlMmZzX2Jsb2Nrc2l6ZV9iaXRzOworCXVp
 bnQ4X3QJKmUyZnNfY29udGlnZGlyczsgLyogKHUpICMgb2YgY29udGlnLiBh
 bGxvY2F0ZWQgZGlycyAqLwogCXVpbnQzMl90IGUyZnNfdG90YWxfZGlyOyAg
 LyogVG90YWwgbnVtYmVyIG9mIGRpcmVjdG9yaWVzICovCi0JdWludDhfdAkq
 ZTJmc19jb250aWdkaXJzOwogCWNoYXIgZTJmc193YXN2YWxpZDsgICAgICAg
 LyogdmFsaWQgYXQgbW91bnQgdGltZSAqLwogCW9mZl90IGUyZnNfbWF4Zmls
 ZXNpemU7CiAJc3RydWN0IGV4dDJfZ2QgKmUyZnNfZ2Q7IC8qIEdyb3VwIERl
 c2NyaXB0b3JzICovCkBAIC0xODIsNiArMTY4LDE0IEBACiAjZGVmaW5lIEUy
 RlNfREFURQkJIjk1LzA4LzA5IgogI2RlZmluZSBFMkZTX1ZFUlNJT04JCSIw
 LjViIgogCisvKiBGaXJzdCBub24tcmVzZXJ2ZWQgaW5vZGUgZm9yIG9sZCBl
 eHQyIGZpbGVzeXN0ZW1zICovCisjZGVmaW5lIEUyRlNfUkVWMF9GSVJTVF9J
 Tk8JMTEKKworLyoKKyAqIFRoZSBzZWNvbmQgZXh0ZW5kZWQgZmlsZSBzeXN0
 ZW0gbWFnaWMgbnVtYmVyCisgKi8KKyNkZWZpbmUgRTJGU19NQUdJQwkJMHhF
 RjUzCisKIC8qCiAgKiBSZXZpc2lvbiBsZXZlbHMKICAqLwpAQCAtMTk3LDYg
 KzE5MSw3IEBACiAgKiBjb21wYXRpYmxlL2luY29tcGF0aWJsZSBmZWF0dXJl
 cwogICovCiAjZGVmaW5lIEVYVDJGX0NPTVBBVF9QUkVBTExPQwkJMHgwMDAx
 CisjZGVmaW5lIEVYVDJGX0NPTVBBVF9IQVNKT1VSTkFMCQkweDAwMDQKICNk
 ZWZpbmUgRVhUMkZfQ09NUEFUX1JFU0laRQkJMHgwMDEwCiAKICNkZWZpbmUg
 RVhUMkZfUk9DT01QQVRfU1BBUlNFU1VQRVIJMHgwMDAxCkBAIC0zMjYsNCAr
 MzIxLDQgQEAKIAogI2VuZGlmCiAKLSNlbmRpZgkvKiBfTElOVVhfRVhUMl9G
 U19IICovCisjZW5kaWYJLyogIV9GU19FWFQyRlNfRVhUMkZTX0ggKi8K
 
 --0-155324898-1269827937=:26301--

From: "Pedro F. Giffuni" <giffunip@tutopia.com>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/143345: [ext2fs] [patch] extfs minor header cleanups to better match NetBSD/UFS
Date: Fri, 31 Dec 2010 08:06:49 -0800 (PST)

 Please close: this has been superceeded by PR 153584.
 
 
       
State-Changed-From-To: open->closed 
State-Changed-By: jh 
State-Changed-When: Sun Jan 2 11:02:48 UTC 2011 
State-Changed-Why:  
Closed at submitter's request. Superseded by kern/153584. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=143345 
>Unformatted:
