You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
611 lines
21 KiB
611 lines
21 KiB
# --- SDE-COPYRIGHT-NOTE-BEGIN --- |
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
|
# |
|
# Filename: package/.../linux26/linux-2.6.git-03010a3350301baac2154fa66de925ae2981b7e3.patch |
|
# Copyright (C) 2008 The OpenSDE Project |
|
# |
|
# More information can be found in the files COPYING and README. |
|
# |
|
# This patch file is dual-licensed. It is available under the license the |
|
# patched project is licensed under, as long as it is an OpenSource license |
|
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms |
|
# of the GNU General Public License as published by the Free Software |
|
# Foundation; either version 2 of the License, or (at your option) any later |
|
# version. |
|
# --- SDE-COPYRIGHT-NOTE-END --- |
|
|
|
From: Theodore Ts'o <tytso@mit.edu> |
|
Date: Sat, 11 Oct 2008 00:02:48 +0000 (-0400) |
|
Subject: ext4: Rename ext4dev to ext4 |
|
X-Git-Tag: v2.6.28-rc1~709^2 |
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=03010a3350301baac2154fa66de925ae2981b7e3 |
|
|
|
ext4: Rename ext4dev to ext4 |
|
|
|
The ext4 filesystem is getting stable enough that it's time to drop |
|
the "dev" prefix. Also remove the requirement for the TEST_FILESYS |
|
flag. |
|
|
|
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> |
|
--- |
|
|
|
diff --git a/Documentation/filesystems/ext4.txt b/Documentation/filesystems/ext4.txt |
|
index 2890579..74484e6 100644 |
|
--- a/Documentation/filesystems/ext4.txt |
|
+++ b/Documentation/filesystems/ext4.txt |
|
@@ -32,9 +32,9 @@ Mailing list: linux-ext4@vger.kernel.org |
|
you will need to merge your changes with the version from e2fsprogs |
|
1.41.x. |
|
|
|
- - Create a new filesystem using the ext4dev filesystem type: |
|
+ - Create a new filesystem using the ext4 filesystem type: |
|
|
|
- # mke2fs -t ext4dev /dev/hda1 |
|
+ # mke2fs -t ext4 /dev/hda1 |
|
|
|
Or configure an existing ext3 filesystem to support extents and set |
|
the test_fs flag to indicate that it's ok for an in-development |
|
@@ -47,13 +47,13 @@ Mailing list: linux-ext4@vger.kernel.org |
|
|
|
# tune2fs -I 256 /dev/hda1 |
|
|
|
- (Note: we currently do not have tools to convert an ext4dev |
|
+ (Note: we currently do not have tools to convert an ext4 |
|
filesystem back to ext3; so please do not do try this on production |
|
filesystems.) |
|
|
|
- Mounting: |
|
|
|
- # mount -t ext4dev /dev/hda1 /wherever |
|
+ # mount -t ext4 /dev/hda1 /wherever |
|
|
|
- When comparing performance with other filesystems, remember that |
|
ext3/4 by default offers higher data integrity guarantees than most. |
|
diff --git a/fs/Kconfig b/fs/Kconfig |
|
index abccb5d..40183d9 100644 |
|
--- a/fs/Kconfig |
|
+++ b/fs/Kconfig |
|
@@ -136,37 +136,51 @@ config EXT3_FS_SECURITY |
|
If you are not using a security module that requires using |
|
extended attributes for file security labels, say N. |
|
|
|
-config EXT4DEV_FS |
|
- tristate "Ext4dev/ext4 extended fs support development (EXPERIMENTAL)" |
|
- depends on EXPERIMENTAL |
|
+config EXT4_FS |
|
+ tristate "The Extended 4 (ext4) filesystem" |
|
select JBD2 |
|
select CRC16 |
|
help |
|
- Ext4dev is a predecessor filesystem of the next generation |
|
- extended fs ext4, based on ext3 filesystem code. It will be |
|
- renamed ext4 fs later, once ext4dev is mature and stabilized. |
|
+ This is the next generation of the ext3 filesystem. |
|
|
|
Unlike the change from ext2 filesystem to ext3 filesystem, |
|
- the on-disk format of ext4dev is not the same as ext3 any more: |
|
- it is based on extent maps and it supports 48-bit physical block |
|
- numbers. These combined on-disk format changes will allow |
|
- ext4dev/ext4 to handle more than 16 TB filesystem volumes -- |
|
- a hard limit that ext3 cannot overcome without changing the |
|
- on-disk format. |
|
- |
|
- Other than extent maps and 48-bit block numbers, ext4dev also is |
|
- likely to have other new features such as persistent preallocation, |
|
- high resolution time stamps, and larger file support etc. These |
|
- features will be added to ext4dev gradually. |
|
+ the on-disk format of ext4 is not forwards compatible with |
|
+ ext3; it is based on extent maps and it supports 48-bit |
|
+ physical block numbers. The ext4 filesystem also supports delayed |
|
+ allocation, persistent preallocation, high resolution time stamps, |
|
+ and a number of other features to improve performance and speed |
|
+ up fsck time. For more information, please see the web pages at |
|
+ http://ext4.wiki.kernel.org. |
|
+ |
|
+ The ext4 filesystem will support mounting an ext3 |
|
+ filesystem; while there will be some performance gains from |
|
+ the delayed allocation and inode table readahead, the best |
|
+ performance gains will require enabling ext4 features in the |
|
+ filesystem, or formating a new filesystem as an ext4 |
|
+ filesystem initially. |
|
|
|
To compile this file system support as a module, choose M here. The |
|
module will be called ext4dev. |
|
|
|
If unsure, say N. |
|
|
|
-config EXT4DEV_FS_XATTR |
|
- bool "Ext4dev extended attributes" |
|
- depends on EXT4DEV_FS |
|
+config EXT4DEV_COMPAT |
|
+ bool "Enable ext4dev compatibility" |
|
+ depends on EXT4_FS |
|
+ help |
|
+ Starting with 2.6.28, the name of the ext4 filesystem was |
|
+ renamed from ext4dev to ext4. Unfortunately there are some |
|
+ lagecy userspace programs (such as klibc's fstype) have |
|
+ "ext4dev" hardcoded. |
|
+ |
|
+ To enable backwards compatibility so that systems that are |
|
+ still expecting to mount ext4 filesystems using ext4dev, |
|
+ chose Y here. This feature will go away by 2.6.31, so |
|
+ please arrange to get your userspace programs fixed! |
|
+ |
|
+config EXT4_FS_XATTR |
|
+ bool "Ext4 extended attributes" |
|
+ depends on EXT4_FS |
|
default y |
|
help |
|
Extended attributes are name:value pairs associated with inodes by |
|
@@ -175,11 +189,11 @@ config EXT4DEV_FS_XATTR |
|
|
|
If unsure, say N. |
|
|
|
- You need this for POSIX ACL support on ext4dev/ext4. |
|
+ You need this for POSIX ACL support on ext4. |
|
|
|
-config EXT4DEV_FS_POSIX_ACL |
|
- bool "Ext4dev POSIX Access Control Lists" |
|
- depends on EXT4DEV_FS_XATTR |
|
+config EXT4_FS_POSIX_ACL |
|
+ bool "Ext4 POSIX Access Control Lists" |
|
+ depends on EXT4_FS_XATTR |
|
select FS_POSIX_ACL |
|
help |
|
POSIX Access Control Lists (ACLs) support permissions for users and |
|
@@ -190,14 +204,14 @@ config EXT4DEV_FS_POSIX_ACL |
|
|
|
If you don't know what Access Control Lists are, say N |
|
|
|
-config EXT4DEV_FS_SECURITY |
|
- bool "Ext4dev Security Labels" |
|
- depends on EXT4DEV_FS_XATTR |
|
+config EXT4_FS_SECURITY |
|
+ bool "Ext4 Security Labels" |
|
+ depends on EXT4_FS_XATTR |
|
help |
|
Security labels support alternative access control models |
|
implemented by security modules like SELinux. This option |
|
enables an extended attribute handler for file security |
|
- labels in the ext4dev/ext4 filesystem. |
|
+ labels in the ext4 filesystem. |
|
|
|
If you are not using a security module that requires using |
|
extended attributes for file security labels, say N. |
|
@@ -240,22 +254,22 @@ config JBD2 |
|
help |
|
This is a generic journaling layer for block devices that support |
|
both 32-bit and 64-bit block numbers. It is currently used by |
|
- the ext4dev/ext4 filesystem, but it could also be used to add |
|
+ the ext4 filesystem, but it could also be used to add |
|
journal support to other file systems or block devices such |
|
as RAID or LVM. |
|
|
|
- If you are using ext4dev/ext4, you need to say Y here. If you are not |
|
- using ext4dev/ext4 then you will probably want to say N. |
|
+ If you are using ext4, you need to say Y here. If you are not |
|
+ using ext4 then you will probably want to say N. |
|
|
|
To compile this device as a module, choose M here. The module will be |
|
- called jbd2. If you are compiling ext4dev/ext4 into the kernel, |
|
+ called jbd2. If you are compiling ext4 into the kernel, |
|
you cannot compile this code as a module. |
|
|
|
config JBD2_DEBUG |
|
- bool "JBD2 (ext4dev/ext4) debugging support" |
|
+ bool "JBD2 (ext4) debugging support" |
|
depends on JBD2 && DEBUG_FS |
|
help |
|
- If you are using the ext4dev/ext4 journaled file system (or |
|
+ If you are using the ext4 journaled file system (or |
|
potentially any other filesystem/device using JBD2), this option |
|
allows you to enable debugging output while the system is running, |
|
in order to help track down any problems you are having. |
|
@@ -270,9 +284,9 @@ config JBD2_DEBUG |
|
config FS_MBCACHE |
|
# Meta block cache for Extended Attributes (ext2/ext3/ext4) |
|
tristate |
|
- depends on EXT2_FS_XATTR || EXT3_FS_XATTR || EXT4DEV_FS_XATTR |
|
- default y if EXT2_FS=y || EXT3_FS=y || EXT4DEV_FS=y |
|
- default m if EXT2_FS=m || EXT3_FS=m || EXT4DEV_FS=m |
|
+ depends on EXT2_FS_XATTR || EXT3_FS_XATTR || EXT4_FS_XATTR |
|
+ default y if EXT2_FS=y || EXT3_FS=y || EXT4_FS=y |
|
+ default m if EXT2_FS=m || EXT3_FS=m || EXT4_FS=m |
|
|
|
config REISERFS_FS |
|
tristate "Reiserfs support" |
|
diff --git a/fs/Makefile b/fs/Makefile |
|
index a1482a5..de404b0 100644 |
|
--- a/fs/Makefile |
|
+++ b/fs/Makefile |
|
@@ -69,7 +69,7 @@ obj-$(CONFIG_DLM) += dlm/ |
|
# Do not add any filesystems before this line |
|
obj-$(CONFIG_REISERFS_FS) += reiserfs/ |
|
obj-$(CONFIG_EXT3_FS) += ext3/ # Before ext2 so root fs can be ext3 |
|
-obj-$(CONFIG_EXT4DEV_FS) += ext4/ # Before ext2 so root fs can be ext4dev |
|
+obj-$(CONFIG_EXT4_FS) += ext4/ # Before ext2 so root fs can be ext4dev |
|
obj-$(CONFIG_JBD) += jbd/ |
|
obj-$(CONFIG_JBD2) += jbd2/ |
|
obj-$(CONFIG_EXT2_FS) += ext2/ |
|
diff --git a/fs/ext4/Makefile b/fs/ext4/Makefile |
|
index ac6fa8c..a8ff003 100644 |
|
--- a/fs/ext4/Makefile |
|
+++ b/fs/ext4/Makefile |
|
@@ -2,12 +2,12 @@ |
|
# Makefile for the linux ext4-filesystem routines. |
|
# |
|
|
|
-obj-$(CONFIG_EXT4DEV_FS) += ext4dev.o |
|
+obj-$(CONFIG_EXT4_FS) += ext4.o |
|
|
|
-ext4dev-y := balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o \ |
|
+ext4-y := balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o \ |
|
ioctl.o namei.o super.o symlink.o hash.o resize.o extents.o \ |
|
ext4_jbd2.o migrate.o mballoc.o |
|
|
|
-ext4dev-$(CONFIG_EXT4DEV_FS_XATTR) += xattr.o xattr_user.o xattr_trusted.o |
|
-ext4dev-$(CONFIG_EXT4DEV_FS_POSIX_ACL) += acl.o |
|
-ext4dev-$(CONFIG_EXT4DEV_FS_SECURITY) += xattr_security.o |
|
+ext4-$(CONFIG_EXT4_FS_XATTR) += xattr.o xattr_user.o xattr_trusted.o |
|
+ext4-$(CONFIG_EXT4_FS_POSIX_ACL) += acl.o |
|
+ext4-$(CONFIG_EXT4_FS_SECURITY) += xattr_security.o |
|
diff --git a/fs/ext4/acl.h b/fs/ext4/acl.h |
|
index 4c9948f..cb45257 100644 |
|
--- a/fs/ext4/acl.h |
|
+++ b/fs/ext4/acl.h |
|
@@ -51,7 +51,7 @@ static inline int ext4_acl_count(size_t size) |
|
} |
|
} |
|
|
|
-#ifdef CONFIG_EXT4DEV_FS_POSIX_ACL |
|
+#ifdef CONFIG_EXT4_FS_POSIX_ACL |
|
|
|
/* Value for inode->u.ext4_i.i_acl and inode->u.ext4_i.i_default_acl |
|
if the ACL has not been cached */ |
|
@@ -62,7 +62,7 @@ extern int ext4_permission(struct inode *, int); |
|
extern int ext4_acl_chmod(struct inode *); |
|
extern int ext4_init_acl(handle_t *, struct inode *, struct inode *); |
|
|
|
-#else /* CONFIG_EXT4DEV_FS_POSIX_ACL */ |
|
+#else /* CONFIG_EXT4_FS_POSIX_ACL */ |
|
#include <linux/sched.h> |
|
#define ext4_permission NULL |
|
|
|
@@ -77,5 +77,5 @@ ext4_init_acl(handle_t *handle, struct inode *inode, struct inode *dir) |
|
{ |
|
return 0; |
|
} |
|
-#endif /* CONFIG_EXT4DEV_FS_POSIX_ACL */ |
|
+#endif /* CONFIG_EXT4_FS_POSIX_ACL */ |
|
|
|
diff --git a/fs/ext4/ext4_i.h b/fs/ext4/ext4_i.h |
|
index 2875eec..5c124c0 100644 |
|
--- a/fs/ext4/ext4_i.h |
|
+++ b/fs/ext4/ext4_i.h |
|
@@ -66,7 +66,7 @@ struct ext4_inode_info { |
|
__u32 i_state; /* Dynamic state flags for ext4 */ |
|
|
|
ext4_lblk_t i_dir_start_lookup; |
|
-#ifdef CONFIG_EXT4DEV_FS_XATTR |
|
+#ifdef CONFIG_EXT4_FS_XATTR |
|
/* |
|
* Extended attributes can be read independently of the main file |
|
* data. Taking i_mutex even when reading would cause contention |
|
@@ -76,7 +76,7 @@ struct ext4_inode_info { |
|
*/ |
|
struct rw_semaphore xattr_sem; |
|
#endif |
|
-#ifdef CONFIG_EXT4DEV_FS_POSIX_ACL |
|
+#ifdef CONFIG_EXT4_FS_POSIX_ACL |
|
struct posix_acl *i_acl; |
|
struct posix_acl *i_default_acl; |
|
#endif |
|
diff --git a/fs/ext4/file.c b/fs/ext4/file.c |
|
index 6d5be15..6bd11fb 100644 |
|
--- a/fs/ext4/file.c |
|
+++ b/fs/ext4/file.c |
|
@@ -165,7 +165,7 @@ const struct inode_operations ext4_file_inode_operations = { |
|
.truncate = ext4_truncate, |
|
.setattr = ext4_setattr, |
|
.getattr = ext4_getattr, |
|
-#ifdef CONFIG_EXT4DEV_FS_XATTR |
|
+#ifdef CONFIG_EXT4_FS_XATTR |
|
.setxattr = generic_setxattr, |
|
.getxattr = generic_getxattr, |
|
.listxattr = ext4_listxattr, |
|
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c |
|
index a474786..9b4ec9d 100644 |
|
--- a/fs/ext4/inode.c |
|
+++ b/fs/ext4/inode.c |
|
@@ -4041,7 +4041,7 @@ struct inode *ext4_iget(struct super_block *sb, unsigned long ino) |
|
return inode; |
|
|
|
ei = EXT4_I(inode); |
|
-#ifdef CONFIG_EXT4DEV_FS_POSIX_ACL |
|
+#ifdef CONFIG_EXT4_FS_POSIX_ACL |
|
ei->i_acl = EXT4_ACL_NOT_CACHED; |
|
ei->i_default_acl = EXT4_ACL_NOT_CACHED; |
|
#endif |
|
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c |
|
index 5295a92..92db9e9 100644 |
|
--- a/fs/ext4/namei.c |
|
+++ b/fs/ext4/namei.c |
|
@@ -1773,7 +1773,7 @@ retry: |
|
err = PTR_ERR(inode); |
|
if (!IS_ERR(inode)) { |
|
init_special_inode(inode, inode->i_mode, rdev); |
|
-#ifdef CONFIG_EXT4DEV_FS_XATTR |
|
+#ifdef CONFIG_EXT4_FS_XATTR |
|
inode->i_op = &ext4_special_inode_operations; |
|
#endif |
|
err = ext4_add_nondir(handle, dentry, inode); |
|
@@ -2456,7 +2456,7 @@ const struct inode_operations ext4_dir_inode_operations = { |
|
.mknod = ext4_mknod, |
|
.rename = ext4_rename, |
|
.setattr = ext4_setattr, |
|
-#ifdef CONFIG_EXT4DEV_FS_XATTR |
|
+#ifdef CONFIG_EXT4_FS_XATTR |
|
.setxattr = generic_setxattr, |
|
.getxattr = generic_getxattr, |
|
.listxattr = ext4_listxattr, |
|
@@ -2467,7 +2467,7 @@ const struct inode_operations ext4_dir_inode_operations = { |
|
|
|
const struct inode_operations ext4_special_inode_operations = { |
|
.setattr = ext4_setattr, |
|
-#ifdef CONFIG_EXT4DEV_FS_XATTR |
|
+#ifdef CONFIG_EXT4_FS_XATTR |
|
.setxattr = generic_setxattr, |
|
.getxattr = generic_getxattr, |
|
.listxattr = ext4_listxattr, |
|
diff --git a/fs/ext4/super.c b/fs/ext4/super.c |
|
index 7d86560..0e661c5 100644 |
|
--- ./fs/ext4/super.c.orig 2008-12-21 21:26:34.000000000 +0200 |
|
+++ ./fs/ext4/super.c 2008-12-21 21:31:32.000000000 +0200 |
|
@@ -562,7 +562,7 @@ |
|
ei = kmem_cache_alloc(ext4_inode_cachep, GFP_NOFS); |
|
if (!ei) |
|
return NULL; |
|
-#ifdef CONFIG_EXT4DEV_FS_POSIX_ACL |
|
+#ifdef CONFIG_EXT4_FS_POSIX_ACL |
|
ei->i_acl = EXT4_ACL_NOT_CACHED; |
|
ei->i_default_acl = EXT4_ACL_NOT_CACHED; |
|
#endif |
|
@@ -599,7 +599,7 @@ |
|
struct ext4_inode_info *ei = (struct ext4_inode_info *) foo; |
|
|
|
INIT_LIST_HEAD(&ei->i_orphan); |
|
-#ifdef CONFIG_EXT4DEV_FS_XATTR |
|
+#ifdef CONFIG_EXT4_FS_XATTR |
|
init_rwsem(&ei->xattr_sem); |
|
#endif |
|
init_rwsem(&ei->i_data_sem); |
|
@@ -626,7 +626,7 @@ |
|
static void ext4_clear_inode(struct inode *inode) |
|
{ |
|
struct ext4_block_alloc_info *rsv = EXT4_I(inode)->i_block_alloc_info; |
|
-#ifdef CONFIG_EXT4DEV_FS_POSIX_ACL |
|
+#ifdef CONFIG_EXT4_FS_POSIX_ACL |
|
if (EXT4_I(inode)->i_acl && |
|
EXT4_I(inode)->i_acl != EXT4_ACL_NOT_CACHED) { |
|
posix_acl_release(EXT4_I(inode)->i_acl); |
|
@@ -718,7 +718,7 @@ |
|
seq_puts(seq, ",debug"); |
|
if (test_opt(sb, OLDALLOC)) |
|
seq_puts(seq, ",oldalloc"); |
|
-#ifdef CONFIG_EXT4DEV_FS_XATTR |
|
+#ifdef CONFIG_EXT4_FS_XATTR |
|
if (test_opt(sb, XATTR_USER) && |
|
!(def_mount_opts & EXT4_DEFM_XATTR_USER)) |
|
seq_puts(seq, ",user_xattr"); |
|
@@ -727,7 +727,7 @@ |
|
seq_puts(seq, ",nouser_xattr"); |
|
} |
|
#endif |
|
-#ifdef CONFIG_EXT4DEV_FS_POSIX_ACL |
|
+#ifdef CONFIG_EXT4_FS_POSIX_ACL |
|
if (test_opt(sb, POSIX_ACL) && !(def_mount_opts & EXT4_DEFM_ACL)) |
|
seq_puts(seq, ",acl"); |
|
if (!test_opt(sb, POSIX_ACL) && (def_mount_opts & EXT4_DEFM_ACL)) |
|
@@ -1072,7 +1072,7 @@ |
|
case Opt_orlov: |
|
clear_opt(sbi->s_mount_opt, OLDALLOC); |
|
break; |
|
-#ifdef CONFIG_EXT4DEV_FS_XATTR |
|
+#ifdef CONFIG_EXT4_FS_XATTR |
|
case Opt_user_xattr: |
|
set_opt(sbi->s_mount_opt, XATTR_USER); |
|
break; |
|
@@ -1085,7 +1085,7 @@ |
|
printk("EXT4 (no)user_xattr options not supported\n"); |
|
break; |
|
#endif |
|
-#ifdef CONFIG_EXT4DEV_FS_POSIX_ACL |
|
+#ifdef CONFIG_EXT4_FS_POSIX_ACL |
|
case Opt_acl: |
|
set_opt(sbi->s_mount_opt, POSIX_ACL); |
|
break; |
|
@@ -1977,11 +1977,11 @@ |
|
set_opt(sbi->s_mount_opt, GRPID); |
|
if (def_mount_opts & EXT4_DEFM_UID16) |
|
set_opt(sbi->s_mount_opt, NO_UID32); |
|
-#ifdef CONFIG_EXT4DEV_FS_XATTR |
|
+#ifdef CONFIG_EXT4_FS_XATTR |
|
if (def_mount_opts & EXT4_DEFM_XATTR_USER) |
|
set_opt(sbi->s_mount_opt, XATTR_USER); |
|
#endif |
|
-#ifdef CONFIG_EXT4DEV_FS_POSIX_ACL |
|
+#ifdef CONFIG_EXT4_FS_POSIX_ACL |
|
if (def_mount_opts & EXT4_DEFM_ACL) |
|
set_opt(sbi->s_mount_opt, POSIX_ACL); |
|
#endif |
|
@@ -2045,16 +2045,6 @@ |
|
"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, |
|
* so there is a chance incompat flags are set on a rev 0 filesystem. |
|
@@ -3520,13 +3510,34 @@ |
|
return get_sb_bdev(fs_type, flags, dev_name, data, ext4_fill_super, mnt); |
|
} |
|
|
|
+static struct file_system_type ext4_fs_type = { |
|
+ .owner = THIS_MODULE, |
|
+ .name = "ext4", |
|
+ .get_sb = ext4_get_sb, |
|
+ .kill_sb = kill_block_super, |
|
+ .fs_flags = FS_REQUIRES_DEV, |
|
+}; |
|
+ |
|
+#ifdef CONFIG_EXT4DEV_COMPAT |
|
+static int ext4dev_get_sb(struct file_system_type *fs_type, |
|
+ int flags, const char *dev_name, void *data, struct vfsmount *mnt) |
|
+{ |
|
+ printk(KERN_WARNING "EXT4-fs: Update your userspace programs " |
|
+ "to mount using ext4\n"); |
|
+ printk(KERN_WARNING "EXT4-fs: ext4dev backwards compatibility " |
|
+ "will go away by 2.6.31\n"); |
|
+ return get_sb_bdev(fs_type, flags, dev_name, data, ext4_fill_super, mnt); |
|
+} |
|
+ |
|
static struct file_system_type ext4dev_fs_type = { |
|
.owner = THIS_MODULE, |
|
.name = "ext4dev", |
|
- .get_sb = ext4_get_sb, |
|
+ .get_sb = ext4dev_get_sb, |
|
.kill_sb = kill_block_super, |
|
.fs_flags = FS_REQUIRES_DEV, |
|
}; |
|
+MODULE_ALIAS("ext4dev"); |
|
+#endif |
|
|
|
static int __init init_ext4_fs(void) |
|
{ |
|
@@ -3542,9 +3553,16 @@ |
|
err = init_inodecache(); |
|
if (err) |
|
goto out1; |
|
- err = register_filesystem(&ext4dev_fs_type); |
|
+ err = register_filesystem(&ext4_fs_type); |
|
if (err) |
|
goto out; |
|
+#ifdef CONFIG_EXT4DEV_COMPAT |
|
+ err = register_filesystem(&ext4dev_fs_type); |
|
+ if (err) { |
|
+ unregister_filesystem(&ext4_fs_type); |
|
+ goto out; |
|
+ } |
|
+#endif |
|
return 0; |
|
out: |
|
destroy_inodecache(); |
|
@@ -3557,7 +3575,10 @@ |
|
|
|
static void __exit exit_ext4_fs(void) |
|
{ |
|
+ unregister_filesystem(&ext4_fs_type); |
|
+#ifdef CONFIG_EXT4DEV_COMPAT |
|
unregister_filesystem(&ext4dev_fs_type); |
|
+#endif |
|
destroy_inodecache(); |
|
exit_ext4_xattr(); |
|
exit_ext4_mballoc(); |
|
diff --git a/fs/ext4/symlink.c b/fs/ext4/symlink.c |
|
index 0013d52..00740cb 100644 |
|
--- a/fs/ext4/symlink.c |
|
+++ b/fs/ext4/symlink.c |
|
@@ -34,7 +34,7 @@ const struct inode_operations ext4_symlink_inode_operations = { |
|
.readlink = generic_readlink, |
|
.follow_link = page_follow_link_light, |
|
.put_link = page_put_link, |
|
-#ifdef CONFIG_EXT4DEV_FS_XATTR |
|
+#ifdef CONFIG_EXT4_FS_XATTR |
|
.setxattr = generic_setxattr, |
|
.getxattr = generic_getxattr, |
|
.listxattr = ext4_listxattr, |
|
@@ -45,7 +45,7 @@ const struct inode_operations ext4_symlink_inode_operations = { |
|
const struct inode_operations ext4_fast_symlink_inode_operations = { |
|
.readlink = generic_readlink, |
|
.follow_link = ext4_follow_link, |
|
-#ifdef CONFIG_EXT4DEV_FS_XATTR |
|
+#ifdef CONFIG_EXT4_FS_XATTR |
|
.setxattr = generic_setxattr, |
|
.getxattr = generic_getxattr, |
|
.listxattr = ext4_listxattr, |
|
diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c |
|
index 362b0ed..80626d5 100644 |
|
--- a/fs/ext4/xattr.c |
|
+++ b/fs/ext4/xattr.c |
|
@@ -99,12 +99,12 @@ static struct mb_cache *ext4_xattr_cache; |
|
|
|
static struct xattr_handler *ext4_xattr_handler_map[] = { |
|
[EXT4_XATTR_INDEX_USER] = &ext4_xattr_user_handler, |
|
-#ifdef CONFIG_EXT4DEV_FS_POSIX_ACL |
|
+#ifdef CONFIG_EXT4_FS_POSIX_ACL |
|
[EXT4_XATTR_INDEX_POSIX_ACL_ACCESS] = &ext4_xattr_acl_access_handler, |
|
[EXT4_XATTR_INDEX_POSIX_ACL_DEFAULT] = &ext4_xattr_acl_default_handler, |
|
#endif |
|
[EXT4_XATTR_INDEX_TRUSTED] = &ext4_xattr_trusted_handler, |
|
-#ifdef CONFIG_EXT4DEV_FS_SECURITY |
|
+#ifdef CONFIG_EXT4_FS_SECURITY |
|
[EXT4_XATTR_INDEX_SECURITY] = &ext4_xattr_security_handler, |
|
#endif |
|
}; |
|
@@ -112,11 +112,11 @@ static struct xattr_handler *ext4_xattr_handler_map[] = { |
|
struct xattr_handler *ext4_xattr_handlers[] = { |
|
&ext4_xattr_user_handler, |
|
&ext4_xattr_trusted_handler, |
|
-#ifdef CONFIG_EXT4DEV_FS_POSIX_ACL |
|
+#ifdef CONFIG_EXT4_FS_POSIX_ACL |
|
&ext4_xattr_acl_access_handler, |
|
&ext4_xattr_acl_default_handler, |
|
#endif |
|
-#ifdef CONFIG_EXT4DEV_FS_SECURITY |
|
+#ifdef CONFIG_EXT4_FS_SECURITY |
|
&ext4_xattr_security_handler, |
|
#endif |
|
NULL |
|
diff --git a/fs/ext4/xattr.h b/fs/ext4/xattr.h |
|
index 814ea58..8ede88b 100644 |
|
--- a/fs/ext4/xattr.h |
|
+++ b/fs/ext4/xattr.h |
|
@@ -63,7 +63,7 @@ struct ext4_xattr_entry { |
|
EXT4_I(inode)->i_extra_isize)) |
|
#define IFIRST(hdr) ((struct ext4_xattr_entry *)((hdr)+1)) |
|
|
|
-# ifdef CONFIG_EXT4DEV_FS_XATTR |
|
+# ifdef CONFIG_EXT4_FS_XATTR |
|
|
|
extern struct xattr_handler ext4_xattr_user_handler; |
|
extern struct xattr_handler ext4_xattr_trusted_handler; |
|
@@ -88,7 +88,7 @@ extern void exit_ext4_xattr(void); |
|
|
|
extern struct xattr_handler *ext4_xattr_handlers[]; |
|
|
|
-# else /* CONFIG_EXT4DEV_FS_XATTR */ |
|
+# else /* CONFIG_EXT4_FS_XATTR */ |
|
|
|
static inline int |
|
ext4_xattr_get(struct inode *inode, int name_index, const char *name, |
|
@@ -141,9 +141,9 @@ ext4_expand_extra_isize_ea(struct inode *inode, int new_extra_isize, |
|
|
|
#define ext4_xattr_handlers NULL |
|
|
|
-# endif /* CONFIG_EXT4DEV_FS_XATTR */ |
|
+# endif /* CONFIG_EXT4_FS_XATTR */ |
|
|
|
-#ifdef CONFIG_EXT4DEV_FS_SECURITY |
|
+#ifdef CONFIG_EXT4_FS_SECURITY |
|
extern int ext4_init_security(handle_t *handle, struct inode *inode, |
|
struct inode *dir); |
|
#else
|
|
|