summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTheodore Y. Ts'o <tytso@snap.thunk.org>2002-10-30 16:16:52 -0500
committerLinus Torvalds <torvalds@penguin.transmeta.com>2002-10-30 16:16:52 -0500
commit1142d28beb9da444f9b3013ec2e90709fd136b9e (patch)
treeda8069a968eddcc28674d53b12748aa3ad33e074 /include
parent841d9227c4395c27cb2f1ce7d2bb7f311c1efb8e (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.h7
-rw-r--r--include/linux/ext3_fs.h6
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| \