Whamcloud - gitweb
Add definition for the extents filesystem feature and inode flag.
authorTheodore Ts'o <tytso@mit.edu>
Tue, 30 Nov 2004 03:14:23 +0000 (22:14 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 30 Nov 2004 03:14:23 +0000 (22:14 -0500)
Change the maximum allowable blocksize to be 65536.  This allows e2fsck to
check filesystems with a pagesize of 65536, and mke2fs to accept -b 65536.
Of course such a filesystem will not currently work on a Linux/x86 system,
at least not as of this writing!

lib/e2p/ChangeLog
lib/e2p/feature.c
lib/ext2fs/ChangeLog
lib/ext2fs/ext2_fs.h

index abd73f6..d920ff6 100644 (file)
@@ -1,3 +1,7 @@
+2004-11-29  Theodore Ts'o  <tytso@mit.edu>
+
+       * feature.c: Add support for the extents filesystem feature.
+
 2004-06-04  Theodore Ts'o  <tytso@mit.edu>
 
        * setflags.c, fsetflags.c: On linux systems, undefine HAVE_CHFLAGS
index 88abfa7..ef11d93 100644 (file)
@@ -47,6 +47,8 @@ static struct feature feature_list[] = {
                        "needs_recovery" },
        {       E2P_FEATURE_INCOMPAT, EXT3_FEATURE_INCOMPAT_JOURNAL_DEV,
                        "journal_dev" },
+       {       E2P_FEATURE_INCOMPAT, EXT3_FEATURE_INCOMPAT_EXTENTS,
+                       "extents" },
        {       E2P_FEATURE_INCOMPAT, EXT2_FEATURE_INCOMPAT_META_BG,
                        "meta_bg" },
        {       0, 0, 0 },
index 2bc4c20..7ca7cf1 100644 (file)
@@ -1,3 +1,10 @@
+2004-11-29  Theodore Ts'o  <tytso@mit.edu>
+
+       * ext2_fs.h (EXT2_EXTENTS_FL, EXT3_FEATURE_INCOMPAT_EXTENTS, 
+               EXT2_MAX_BLOCK_LOG_SIZE): Add definition for extent
+               feature and inode flag.  Change maximum allowable block
+               size to be 65536.
+
 2004-10-08  Theodore Ts'o  <tytso@mit.edu>
 
        * getsize.c (ext2fs_get_device_size): Add support for Windows
index 0313c3e..b182ef2 100644 (file)
@@ -77,7 +77,7 @@
  * Macro-instructions used to manage several block sizes
  */
 #define EXT2_MIN_BLOCK_LOG_SIZE                10      /* 1024 */
-#define EXT2_MAX_BLOCK_LOG_SIZE                13      /* 8192 */
+#define EXT2_MAX_BLOCK_LOG_SIZE                16      /* 65536 */
 #define EXT2_MIN_BLOCK_SIZE    (1 << EXT2_MIN_BLOCK_LOG_SIZE)
 #define EXT2_MAX_BLOCK_SIZE    (1 << EXT2_MAX_BLOCK_LOG_SIZE)
 #ifdef __KERNEL__
@@ -233,6 +233,7 @@ struct ext2_dx_countlimit {
 #define EXT2_NOTAIL_FL                 0x00008000 /* file tail should not be merged */
 #define EXT2_DIRSYNC_FL                0x00010000 /* Synchronous directory modifications */
 #define EXT2_TOPDIR_FL                 0x00020000 /* Top of directory hierarchies*/
+#define EXT3_EXTENTS_FL                0x00080000 /* Inode uses extents */
 #define EXT2_RESERVED_FL               0x80000000 /* reserved for ext2 lib */
 
 #define EXT2_FL_USER_VISIBLE           0x0003DFFF /* User visible flags */
@@ -502,6 +503,8 @@ struct ext2_super_block {
 #define EXT3_FEATURE_INCOMPAT_RECOVER          0x0004 /* Needs recovery */
 #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_COMPAT_SUPP       0
 #define EXT2_FEATURE_INCOMPAT_SUPP     (EXT2_FEATURE_INCOMPAT_FILETYPE)