Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=469108ff3dcbc00313699d620c47f3ee1e7d19c6
Commit:     469108ff3dcbc00313699d620c47f3ee1e7d19c6
Parent:     26346ff681cb42c1436ed09c44dcae4809470dab
Author:     Theodore Tso <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 10 01:11:44 2008 -0500
Committer:  Theodore Ts'o <[EMAIL PROTECTED]>
CommitDate: Sun Feb 10 01:11:44 2008 -0500

    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 <[EMAIL PROTECTED]>
    Signed-off-by: Mingming Cao <[EMAIL PROTECTED]>
---
 fs/ext4/super.c         |   11 +++++++++++
 include/linux/ext4_fs.h |    7 +++++++
 2 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 93beb86..0072da7 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)
                printk(KERN_WARNING
                       "EXT4-fs warning: feature flags set on rev 0 fs, "
                       "running e2fsck is recommended\n");
+
+       /*
+        * Since ext4 is still considered development code, we require
+        * that the TEST_FILESYS flag in s->flags be set.
+        */
+       if (!(le32_to_cpu(es->s_flags) & EXT2_FLAGS_TEST_FILESYS)) {
+               printk(KERN_WARNING "EXT4-fs: %s: not marked "
+                      "OK to use with test code.\n", sb->s_id);
+               goto failed_mount;
+       }
+
        /*
         * Check feature flags regardless of the revision level, since we
         * 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 c4f635a..2500325 100644
--- a/include/linux/ext4_fs.h
+++ b/include/linux/ext4_fs.h
@@ -490,6 +490,13 @@ do {                                                       
                       \
 #define        EXT4_ORPHAN_FS                  0x0004  /* Orphans being 
recovered */
 
 /*
+ * Misc. filesystem flags
+ */
+#define EXT2_FLAGS_SIGNED_HASH         0x0001  /* Signed dirhash in use */
+#define EXT2_FLAGS_UNSIGNED_HASH       0x0002  /* Unsigned dirhash in use */
+#define EXT2_FLAGS_TEST_FILESYS                0x0004  /* to test development 
code */
+
+/*
  * Mount flags
  */
 #define EXT4_MOUNT_CHECK               0x00001 /* Do mount-time checks */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to