aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTheodore Tso <tytso@MIT.EDU>2008-02-10 01:11:44 -0500
committerTheodore Ts'o <tytso@mit.edu>2008-02-10 01:11:44 -0500
commit469108ff3dcbc00313699d620c47f3ee1e7d19c6 (patch)
treed7cd5a7097d1c87b0dfc46297b05d297aabfdf62
parent26346ff681cb42c1436ed09c44dcae4809470dab (diff)
ext4: Add new "development flag" to the ext4 filesystem
This flag is simply a generic "this is a crash/burn test filesystem" marker. If it is set, then filesystem code which is "in development" will be allowed to mount the filesystem. Filesystem code which is not considered ready for prime-time will check for this flag, and if it is not set, it will refuse to touch the filesystem. As we start rolling ext4 out to distro's like Fedora, et. al, this makes it less likely that a user might accidentally start using ext4 on a production filesystem; a bad thing, since that will essentially make it be unfsckable until e2fsprogs catches up. Signed-off-by: Theodore Tso <tytso@MIT.EDU> Signed-off-by: Mingming Cao <cmm@us.ibm.com>
-rw-r--r--fs/ext4/super.c11
-rw-r--r--include/linux/ext4_fs.h7
2 files changed, 18 insertions, 0 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 93beb865c20d..0072da75221f 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -1919,6 +1919,17 @@ static int ext4_fill_super (struct super_block *sb, void *data, int silent)
1919 printk(KERN_WARNING 1919 printk(KERN_WARNING
1920 "EXT4-fs warning: feature flags set on rev 0 fs, " 1920 "EXT4-fs warning: feature flags set on rev 0 fs, "
1921 "running e2fsck is recommended\n"); 1921 "running e2fsck is recommended\n");
1922
1923 /*
1924 * Since ext4 is still considered development code, we require
1925 * that the TEST_FILESYS flag in s->flags be set.
1926 */
1927 if (!(le32_to_cpu(es->s_flags) & EXT2_FLAGS_TEST_FILESYS)) {
1928 printk(KERN_WARNING "EXT4-fs: %s: not marked "
1929 "OK to use with test code.\n", sb->s_id);
1930 goto failed_mount;
1931 }
1932
1922 /* 1933 /*
1923 * Check feature flags regardless of the revision level, since we 1934 * Check feature flags regardless of the revision level, since we
1924 * previously didn't change the revision level when setting the flags, 1935 * previously didn't change the revision level when setting the flags,
diff --git a/include/linux/ext4_fs.h b/include/linux/ext4_fs.h
index c4f635a4dd25..250032548597 100644
--- a/include/linux/ext4_fs.h
+++ b/include/linux/ext4_fs.h
@@ -490,6 +490,13 @@ do { \
490#define EXT4_ORPHAN_FS 0x0004 /* Orphans being recovered */ 490#define EXT4_ORPHAN_FS 0x0004 /* Orphans being recovered */
491 491
492/* 492/*
493 * Misc. filesystem flags
494 */
495#define EXT2_FLAGS_SIGNED_HASH 0x0001 /* Signed dirhash in use */
496#define EXT2_FLAGS_UNSIGNED_HASH 0x0002 /* Unsigned dirhash in use */
497#define EXT2_FLAGS_TEST_FILESYS 0x0004 /* to test development code */
498
499/*
493 * Mount flags 500 * Mount flags
494 */ 501 */
495#define EXT4_MOUNT_CHECK 0x00001 /* Do mount-time checks */ 502#define EXT4_MOUNT_CHECK 0x00001 /* Do mount-time checks */