rfc: [patch 5/6] more e2fsprogs fixes

Alexandre Ratchov <[email protected]> Fri, 25 Aug 2006 15:21:09 +0200
Newsgroups gmane.comp.file-systems.ext2.devel
Message-ID <[email protected]>
replace RO_COMPAT_64BIT -> INCOMPAT_64BIT, (as it is already
in the kernel)


Index: e2fsprogs-1.39/lib/e2p/feature.c
===================================================================
--- e2fsprogs-1.39.orig/lib/e2p/feature.c	2006-08-22 13:33:16.000000000 +0200
+++ e2fsprogs-1.39/lib/e2p/feature.c	2006-08-23 18:01:29.000000000 +0200
@@ -41,7 +41,7 @@ static struct feature feature_list[] = {
 			"sparse_super" },
 	{	E2P_FEATURE_RO_INCOMPAT, EXT2_FEATURE_RO_COMPAT_LARGE_FILE,
 			"large_file" },
-	{	E2P_FEATURE_RO_INCOMPAT, EXT2_FEATURE_RO_COMPAT_64BIT,
+	{	E2P_FEATURE_INCOMPAT, EXT2_FEATURE_INCOMPAT_64BIT,
 			"64bit" },
 	{	E2P_FEATURE_INCOMPAT, EXT2_FEATURE_INCOMPAT_COMPRESSION,
 			"compression" },
Index: e2fsprogs-1.39/lib/ext2fs/ext2fs.h
===================================================================
--- e2fsprogs-1.39.orig/lib/ext2fs/ext2fs.h	2006-08-22 13:33:16.000000000 +0200
+++ e2fsprogs-1.39/lib/ext2fs/ext2fs.h	2006-08-23 18:06:27.000000000 +0200
@@ -461,17 +461,18 @@ typedef struct ext2_icount *ext2_icount_
 					 EXT3_FEATURE_INCOMPAT_JOURNAL_DEV|\
 					 EXT2_FEATURE_INCOMPAT_META_BG|\
 					 EXT3_FEATURE_INCOMPAT_RECOVER|\
-					 EXT3_FEATURE_INCOMPAT_EXTENTS)
+					 EXT3_FEATURE_INCOMPAT_EXTENTS|\
+					 EXT2_FEATURE_INCOMPAT_64BIT)
 #else
 #define EXT2_LIB_FEATURE_INCOMPAT_SUPP	(EXT2_FEATURE_INCOMPAT_FILETYPE|\
 					 EXT3_FEATURE_INCOMPAT_JOURNAL_DEV|\
 					 EXT2_FEATURE_INCOMPAT_META_BG|\
 					 EXT3_FEATURE_INCOMPAT_RECOVER|\
-					 EXT3_FEATURE_INCOMPAT_EXTENTS)
+					 EXT3_FEATURE_INCOMPAT_EXTENTS|\
+					 EXT2_FEATURE_INCOMPAT_64BIT)
 #endif
 #define EXT2_LIB_FEATURE_RO_COMPAT_SUPP	(EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER|\
-					 EXT2_FEATURE_RO_COMPAT_LARGE_FILE|\
-					 EXT2_FEATURE_RO_COMPAT_64BIT)
+					 EXT2_FEATURE_RO_COMPAT_LARGE_FILE)
 /*
  * function prototypes
  */
Index: e2fsprogs-1.39/misc/mke2fs.c
===================================================================
--- e2fsprogs-1.39.orig/misc/mke2fs.c	2006-08-22 13:33:16.000000000 +0200
+++ e2fsprogs-1.39/misc/mke2fs.c	2006-08-23 18:02:44.000000000 +0200
@@ -527,7 +527,7 @@ static void create_lost_and_found(ext2_f
 		exit(1);
 	}
 	
-	if (!(fs->super->s_feature_ro_compat & EXT2_FEATURE_RO_COMPAT_64BIT)) {
+	if (!(fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_64BIT)) {
 	for (i=1; i < EXT2_NDIR_BLOCKS; i++) {
 		if ((lpf_size += fs->blocksize) >= 16*1024)
 			break;
@@ -1252,7 +1252,7 @@ static void PRS(int argc, char *argv[])
 				exit(1);
 			}
 			if (dev_size >> 31) {
-				fs_param.s_feature_ro_compat |= EXT2_FEATURE_RO_COMPAT_64BIT;
+				fs_param.s_feature_incompat |= EXT2_FEATURE_INCOMPAT_64BIT;
 			}
 			EXT2_BLOCKS_COUNT_SET(&fs_param, dev_size);
 			if (sys_page_size > EXT2_BLOCK_SIZE(&fs_param))
Index: e2fsprogs-1.39/lib/ext2fs/ext2_fs.h
===================================================================
--- e2fsprogs-1.39.orig/lib/ext2fs/ext2_fs.h	2006-08-23 16:41:24.000000000 +0200
+++ e2fsprogs-1.39/lib/ext2fs/ext2_fs.h	2006-08-23 18:04:43.000000000 +0200
@@ -561,31 +561,31 @@ struct ext2_super_block {
 	__u32	s_first_meta_bg;	/* First metablock group */
 	__u32	s_mkfs_time;		/* When the filesystem was created */
 	__u32	s_jnl_blocks[17]; 	/* Backup of the journal inode */
-	/* 64bit support valid if EXT3_FEATURE_RO_COMPAT_64BIT */
+	/* 64bit support valid if EXT3_FEATURE_INCOMPAT_64BIT */
 	__u32	s_blocks_count_hi;	/* Blocks count */
 	__u32	s_r_blocks_count_hi;	/* Reserved blocks count */
 	__u32	s_free_blocks_count_hi;	/* Free blocks count */
 	__u32	s_reserved[169];	/* Padding to the end of the block */
 };
 
-#define EXT2_BLOCKS_COUNT(s)	(((s)->s_feature_ro_compat & EXT2_FEATURE_RO_COMPAT_64BIT ? ((__u64)(s)->s_blocks_count_hi << 32) : 0) | (__u64)(s)->s_blocks_count)
+#define EXT2_BLOCKS_COUNT(s)	(((s)->s_feature_incompat & EXT2_FEATURE_INCOMPAT_64BIT ? ((__u64)(s)->s_blocks_count_hi << 32) : 0) | (__u64)(s)->s_blocks_count)
 #define EXT2_BLOCKS_COUNT_SET(s,v)	do {				\
 	(s)->s_blocks_count = (v);					\
-	if ((s)->s_feature_ro_compat & EXT2_FEATURE_RO_COMPAT_64BIT)	\
+	if ((s)->s_feature_incompat & EXT2_FEATURE_INCOMPAT_64BIT)	\
 		(s)->s_blocks_count_hi = ((__u64)(v)) >> 32;		\
 } while (0)
 
-#define EXT2_R_BLOCKS_COUNT(s)	(((s)->s_feature_ro_compat & EXT2_FEATURE_RO_COMPAT_64BIT ? ((__u64)(s)->s_r_blocks_count_hi << 32) : 0) | (__u64)(s)->s_r_blocks_count)
+#define EXT2_R_BLOCKS_COUNT(s)	(((s)->s_feature_incompat & EXT2_FEATURE_INCOMPAT_64BIT ? ((__u64)(s)->s_r_blocks_count_hi << 32) : 0) | (__u64)(s)->s_r_blocks_count)
 #define EXT2_R_BLOCKS_COUNT_SET(s,v)	do {				\
 	(s)->s_r_blocks_count = (v);					\
-	if ((s)->s_feature_ro_compat & EXT2_FEATURE_RO_COMPAT_64BIT)	\
+	if ((s)->s_feature_incompat & EXT2_FEATURE_INCOMPAT_64BIT)	\
 		(s)->s_r_blocks_count_hi = ((__u64)(v)) >> 32;		\
 } while (0)
 
-#define EXT2_FREE_BLOCKS_COUNT(s)	(((s)->s_feature_ro_compat & EXT2_FEATURE_RO_COMPAT_64BIT ? ((__u64)(s)->s_free_blocks_count_hi << 32) : 0) | (__u64)(s)->s_free_blocks_count)
+#define EXT2_FREE_BLOCKS_COUNT(s)	(((s)->s_feature_incompat & EXT2_FEATURE_INCOMPAT_64BIT ? ((__u64)(s)->s_free_blocks_count_hi << 32) : 0) | (__u64)(s)->s_free_blocks_count)
 #define EXT2_FREE_BLOCKS_COUNT_SET(s,v)	do {				\
 	(s)->s_free_blocks_count = (v);					\
-	if ((s)->s_feature_ro_compat & EXT2_FEATURE_RO_COMPAT_64BIT)	\
+	if ((s)->s_feature_incompat & EXT2_FEATURE_INCOMPAT_64BIT)	\
 		(s)->s_free_blocks_count_hi = ((__u64)(v)) >> 32;	\
 } while (0)
 
@@ -636,7 +636,6 @@ struct ext2_super_block {
 #define EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER	0x0001
 #define EXT2_FEATURE_RO_COMPAT_LARGE_FILE	0x0002
 /* #define EXT2_FEATURE_RO_COMPAT_BTREE_DIR	0x0004 not used */
-#define EXT2_FEATURE_RO_COMPAT_64BIT		0x0010
 
 #define EXT2_FEATURE_INCOMPAT_COMPRESSION	0x0001
 #define EXT2_FEATURE_INCOMPAT_FILETYPE		0x0002
@@ -644,14 +643,14 @@ struct ext2_super_block {
 #define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV	0x0008 /* Journal device */
 #define EXT2_FEATURE_INCOMPAT_META_BG		0x0010
 #define EXT3_FEATURE_INCOMPAT_EXTENTS		0x0040
-
+#define EXT2_FEATURE_INCOMPAT_64BIT		0x0080
 
 #define EXT2_FEATURE_COMPAT_SUPP	0
-#define EXT2_FEATURE_INCOMPAT_SUPP	(EXT2_FEATURE_INCOMPAT_FILETYPE)
+#define EXT2_FEATURE_INCOMPAT_SUPP	(EXT2_FEATURE_INCOMPAT_FILETYPE| \
+					 EXT2_FEATURE_INCOMPAT_64BIT)
 #define EXT2_FEATURE_RO_COMPAT_SUPP	(EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER| \
 					 EXT2_FEATURE_RO_COMPAT_LARGE_FILE| \
-					 EXT2_FEATURE_RO_COMPAT_BTREE_DIR| \
-					 EXT2_FEATURE_RO_COMPAT_64BIT)
+					 EXT2_FEATURE_RO_COMPAT_BTREE_DIR)
 
 /*
  * Default values for user and/or group using reserved blocks

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642