diff options
| author | Theodore Y. Ts'o <tytso@snap.thunk.org> | 2002-10-30 16:16:52 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@penguin.transmeta.com> | 2002-10-30 16:16:52 -0500 |
| commit | 1142d28beb9da444f9b3013ec2e90709fd136b9e (patch) | |
| tree | da8069a968eddcc28674d53b12748aa3ad33e074 /include | |
| parent | 841d9227c4395c27cb2f1ce7d2bb7f311c1efb8e (diff) | |
Ext2/3 forward compatibility: on-line resizing
This patch allows forward compatibility with future filesystems which
are dynamically grown by using an alternate algorithm for storing the
block group descriptors. It's also a bit more efficient, in that it
uses just a little bit less disk space. Currently, the ext2 filesystem
format requires either relocating the inode table, or reserving space in
before doing the on-line resize. The new scheme, which is documented in
"Planned Extensions to the Ext2/3 Filesystem", by Stephen Tweedie and I
(see: http://e2fsprogs.sourceforge.net/extensions-ext23)
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/ext2_fs.h | 7 | ||||
| -rw-r--r-- | include/linux/ext3_fs.h | 6 |
2 files changed, 10 insertions, 3 deletions
diff --git a/include/linux/ext2_fs.h b/include/linux/ext2_fs.h index 36b16c5f7527..4744fa33f796 100644 --- a/include/linux/ext2_fs.h +++ b/include/linux/ext2_fs.h @@ -422,7 +422,8 @@ struct ext2_super_block { __u8 s_reserved_char_pad; __u16 s_reserved_word_pad; __u32 s_default_mount_opts; - __u32 s_reserved[191]; /* Padding to the end of the block */ + __u32 s_first_meta_bg; /* First metablock block group */ + __u32 s_reserved[190]; /* Padding to the end of the block */ }; /* @@ -485,10 +486,12 @@ struct ext2_super_block { #define EXT2_FEATURE_INCOMPAT_FILETYPE 0x0002 #define EXT3_FEATURE_INCOMPAT_RECOVER 0x0004 #define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV 0x0008 +#define EXT2_FEATURE_INCOMPAT_META_BG 0x0010 #define EXT2_FEATURE_INCOMPAT_ANY 0xffffffff #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_META_BG) #define EXT2_FEATURE_RO_COMPAT_SUPP (EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER| \ EXT2_FEATURE_RO_COMPAT_LARGE_FILE| \ EXT2_FEATURE_RO_COMPAT_BTREE_DIR) diff --git a/include/linux/ext3_fs.h b/include/linux/ext3_fs.h index 0cb53b4af487..a7fb7495ad48 100644 --- a/include/linux/ext3_fs.h +++ b/include/linux/ext3_fs.h @@ -450,7 +450,8 @@ struct ext3_super_block { __u8 s_reserved_char_pad; __u16 s_reserved_word_pad; __u32 s_default_mount_opts; - __u32 s_reserved[191]; /* Padding to the end of the block */ + __u32 s_first_meta_bg; /* First metablock block group */ + __u32 s_reserved[190]; /* Padding to the end of the block */ }; #ifdef __KERNEL__ @@ -529,8 +530,11 @@ static inline struct ext3_inode_info *EXT3_I(struct inode *inode) #define EXT3_FEATURE_INCOMPAT_FILETYPE 0x0002 #define EXT3_FEATURE_INCOMPAT_RECOVER 0x0004 /* Needs recovery */ #define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV 0x0008 /* Journal device */ +#define EXT3_FEATURE_INCOMPAT_META_BG 0x0010 #define EXT3_FEATURE_COMPAT_SUPP 0 +#define EXT2_FEATURE_INCOMPAT_SUPP (EXT2_FEATURE_INCOMPAT_FILETYPE| \ + EXT2_FEATURE_INCOMPAT_META_BG) #define EXT3_FEATURE_INCOMPAT_SUPP (EXT3_FEATURE_INCOMPAT_FILETYPE| \ EXT3_FEATURE_INCOMPAT_RECOVER) #define EXT3_FEATURE_RO_COMPAT_SUPP (EXT3_FEATURE_RO_COMPAT_SPARSE_SUPER| \ |
