Commit 02ea2104c55b625cf5b5d9ba8586a4fc17920f5c

Authored by Mingming Cao
Committed by Linus Torvalds
1 parent 617ba13b31

[PATCH] ext4: enable building of ext4

Originally part of a patch from Mingming Cao and Randy Dunlap.  Reorganized
by Shaggy.

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Mingming Cao<cmm@us.ibm.com>
Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

Showing 3 changed files with 73 additions and 4 deletions Side-by-side Diff

... ... @@ -140,6 +140,73 @@
140 140 If you are not using a security module that requires using
141 141 extended attributes for file security labels, say N.
142 142  
  143 +config EXT4DEV_FS
  144 + tristate "Ext4dev/ext4 extended fs support development (EXPERIMENTAL)"
  145 + depends on EXPERIMENTAL
  146 + select JBD
  147 + help
  148 + Ext4dev is a predecessor filesystem of the next generation
  149 + extended fs ext4, based on ext3 filesystem code. It will be
  150 + renamed ext4 fs later, once ext4dev is mature and stabilized.
  151 +
  152 + Unlike the change from ext2 filesystem to ext3 filesystem,
  153 + the on-disk format of ext4dev is not the same as ext3 any more:
  154 + it is based on extent maps and it supports 48-bit physical block
  155 + numbers. These combined on-disk format changes will allow
  156 + ext4dev/ext4 to handle more than 16 TB filesystem volumes --
  157 + a hard limit that ext3 cannot overcome without changing the
  158 + on-disk format.
  159 +
  160 + Other than extent maps and 48-bit block numbers, ext4dev also is
  161 + likely to have other new features such as persistent preallocation,
  162 + high resolution time stamps, and larger file support etc. These
  163 + features will be added to ext4dev gradually.
  164 +
  165 + To compile this file system support as a module, choose M here. The
  166 + module will be called ext4dev. Be aware, however, that the filesystem
  167 + of your root partition (the one containing the directory /) cannot
  168 + be compiled as a module, and so this could be dangerous.
  169 +
  170 + If unsure, say N.
  171 +
  172 +config EXT4DEV_FS_XATTR
  173 + bool "Ext4dev extended attributes"
  174 + depends on EXT4DEV_FS
  175 + default y
  176 + help
  177 + Extended attributes are name:value pairs associated with inodes by
  178 + the kernel or by users (see the attr(5) manual page, or visit
  179 + <http://acl.bestbits.at/> for details).
  180 +
  181 + If unsure, say N.
  182 +
  183 + You need this for POSIX ACL support on ext4dev/ext4.
  184 +
  185 +config EXT4DEV_FS_POSIX_ACL
  186 + bool "Ext4dev POSIX Access Control Lists"
  187 + depends on EXT4DEV_FS_XATTR
  188 + select FS_POSIX_ACL
  189 + help
  190 + POSIX Access Control Lists (ACLs) support permissions for users and
  191 + groups beyond the owner/group/world scheme.
  192 +
  193 + To learn more about Access Control Lists, visit the POSIX ACLs for
  194 + Linux website <http://acl.bestbits.at/>.
  195 +
  196 + If you don't know what Access Control Lists are, say N
  197 +
  198 +config EXT4DEV_FS_SECURITY
  199 + bool "Ext4dev Security Labels"
  200 + depends on EXT4DEV_FS_XATTR
  201 + help
  202 + Security labels support alternative access control models
  203 + implemented by security modules like SELinux. This option
  204 + enables an extended attribute handler for file security
  205 + labels in the ext4dev/ext4 filesystem.
  206 +
  207 + If you are not using a security module that requires using
  208 + extended attributes for file security labels, say N.
  209 +
143 210 config JBD
144 211 tristate
145 212 help
146 213  
... ... @@ -173,11 +240,11 @@
173 240 "echo 0 > /proc/sys/fs/jbd-debug".
174 241  
175 242 config FS_MBCACHE
176   -# Meta block cache for Extended Attributes (ext2/ext3)
  243 +# Meta block cache for Extended Attributes (ext2/ext3/ext4)
177 244 tristate
178   - depends on EXT2_FS_XATTR || EXT3_FS_XATTR
179   - default y if EXT2_FS=y || EXT3_FS=y
180   - default m if EXT2_FS=m || EXT3_FS=m
  245 + depends on EXT2_FS_XATTR || EXT3_FS_XATTR || EXT4DEV_FS_XATTR
  246 + default y if EXT2_FS=y || EXT3_FS=y || EXT4DEV_FS=y
  247 + default m if EXT2_FS=m || EXT3_FS=m || EXT4DEV_FS=m
181 248  
182 249 config REISERFS_FS
183 250 tristate "Reiserfs support"
... ... @@ -62,6 +62,7 @@
62 62 # Do not add any filesystems before this line
63 63 obj-$(CONFIG_REISERFS_FS) += reiserfs/
64 64 obj-$(CONFIG_EXT3_FS) += ext3/ # Before ext2 so root fs can be ext3
  65 +obj-$(CONFIG_EXT4DEV_FS) += ext4/ # Before ext2 so root fs can be ext4dev
65 66 obj-$(CONFIG_JBD) += jbd/
66 67 obj-$(CONFIG_EXT2_FS) += ext2/
67 68 obj-$(CONFIG_CRAMFS) += cramfs/
include/linux/magic.h
... ... @@ -8,6 +8,7 @@
8 8 #define EFS_SUPER_MAGIC 0x414A53
9 9 #define EXT2_SUPER_MAGIC 0xEF53
10 10 #define EXT3_SUPER_MAGIC 0xEF53
  11 +#define EXT4_SUPER_MAGIC 0xEF53
11 12 #define HPFS_SUPER_MAGIC 0xf995e849
12 13 #define ISOFS_SUPER_MAGIC 0x9660
13 14 #define JFFS2_SUPER_MAGIC 0x72b6