From: Theodore Ts'o Date: Tue, 30 Nov 2004 03:14:23 +0000 (-0500) Subject: Add definition for the extents filesystem feature and inode flag. X-Git-Tag: E2FSPROGS-1_36~117 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=39dc1c45cb41ce37a56d364103bb852d0b62c835;p=tools%2Fe2fsprogs.git Add definition for the extents filesystem feature and inode flag. 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! --- diff --git a/lib/e2p/ChangeLog b/lib/e2p/ChangeLog index abd73f6..d920ff6 100644 --- a/lib/e2p/ChangeLog +++ b/lib/e2p/ChangeLog @@ -1,3 +1,7 @@ +2004-11-29 Theodore Ts'o + + * feature.c: Add support for the extents filesystem feature. + 2004-06-04 Theodore Ts'o * setflags.c, fsetflags.c: On linux systems, undefine HAVE_CHFLAGS diff --git a/lib/e2p/feature.c b/lib/e2p/feature.c index 88abfa7..ef11d93 100644 --- a/lib/e2p/feature.c +++ b/lib/e2p/feature.c @@ -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 }, diff --git a/lib/ext2fs/ChangeLog b/lib/ext2fs/ChangeLog index 2bc4c20..7ca7cf1 100644 --- a/lib/ext2fs/ChangeLog +++ b/lib/ext2fs/ChangeLog @@ -1,3 +1,10 @@ +2004-11-29 Theodore Ts'o + + * 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 * getsize.c (ext2fs_get_device_size): Add support for Windows diff --git a/lib/ext2fs/ext2_fs.h b/lib/ext2fs/ext2_fs.h index 0313c3e..b182ef2 100644 --- a/lib/ext2fs/ext2_fs.h +++ b/lib/ext2fs/ext2_fs.h @@ -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)