]> git.ipfire.org Git - thirdparty/e2fsprogs.git/blobdiff - include/linux/ext2_fs.h
.del-ext2_fs.h~7a460879, ChangeLog:
[thirdparty/e2fsprogs.git] / include / linux / ext2_fs.h
index aa0f1884ec58e5e8ea5456c9452b888cc14916c7..be66a3c076e7555ccbe64b7b4bd76854c68ac008 100644 (file)
 #define EXT2_ACL_DATA_INO       4      /* ACL inode */
 #define EXT2_BOOT_LOADER_INO    5      /* Boot loader inode */
 #define EXT2_UNDEL_DIR_INO      6      /* Undelete directory inode */
+/*
+ * 7 is reserved for EXT2_RESIZE_INO; was used for this in the past
+ * for the on-line resizing patches, but there is a better way of
+ * doing this which sct, andreas, and tytso discussed at the
+ * Filesystem/Storage Management Workshop in Miami (October, 2000).
+ */
+#define EXT2_JOURNAL_INO        8      /* Journal inode */
 
 /* First non-reserved inode for old ext2 filesystems */
 #define EXT2_GOOD_OLD_FIRST_INO        11
@@ -185,9 +192,11 @@ struct ext2_group_desc
 #define EXT2_ECOMPR_FL                 0x00000800 /* Compression error */
 /* End compression flags --- maybe not all used */     
 #define EXT2_BTREE_FL                  0x00001000 /* btree format dir */
+#define EXT2_IMAGIC_FL                 0x00002000
+#define EXT3_JOURNAL_DATA_FL           0x00004000 /* file data should be journaled */
 #define EXT2_RESERVED_FL               0x80000000 /* reserved for ext2 lib */
 
-#define EXT2_FL_USER_VISIBLE           0x00001FFF /* User visible flags */
+#define EXT2_FL_USER_VISIBLE           0x00005FFF /* User visible flags */
 #define EXT2_FL_USER_MODIFIABLE                0x000000FF /* User modifiable flags */
 
 /*
@@ -375,12 +384,20 @@ struct ext2_super_block {
        __u32   s_algorithm_usage_bitmap; /* For compression */
        /*
         * Performance hints.  Directory preallocation should only
-        * happen if the EXT2_COMPAT_PREALLOC flag is on.
+        * happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on.
         */
        __u8    s_prealloc_blocks;      /* Nr of blocks to try to preallocate*/
        __u8    s_prealloc_dir_blocks;  /* Nr to preallocate for dirs */
        __u16   s_padding1;
-       __u32   s_reserved[204];        /* Padding to the end of the block */
+       /* 
+        * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set.
+        */
+       __u8    s_journal_uuid[16];     /* uuid of journal superblock */
+       __u32   s_journal_inum;         /* inode number of journal file */
+       __u32   s_journal_dev;          /* device number of journal file */
+       __u32   s_last_orphan;          /* start of list of inodes to delete */
+       
+       __u32   s_reserved[197];        /* Padding to the end of the block */
 };
 
 #ifdef __KERNEL__
@@ -424,6 +441,8 @@ struct ext2_super_block {
        ( EXT2_SB(sb)->s_feature_incompat & (mask) )
 
 #define EXT2_FEATURE_COMPAT_DIR_PREALLOC       0x0001
+#define EXT2_FEATURE_COMPAT_IMAGIC_INODES      0x0002
+#define EXT3_FEATURE_COMPAT_HAS_JOURNAL                0x0004
 
 #define EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER    0x0001
 #define EXT2_FEATURE_RO_COMPAT_LARGE_FILE      0x0002
@@ -431,6 +450,7 @@ struct ext2_super_block {
 
 #define EXT2_FEATURE_INCOMPAT_COMPRESSION      0x0001
 #define EXT2_FEATURE_INCOMPAT_FILETYPE         0x0002
+#define EXT3_FEATURE_INCOMPAT_RECOVER          0x0004 /* Needs recovery */
 
 #define EXT2_FEATURE_COMPAT_SUPP       0
 #define EXT2_FEATURE_INCOMPAT_SUPP     EXT2_FEATURE_INCOMPAT_FILETYPE