[Pkg-lustre-svn-commit] updated: [9290abb] LDISKFS kernel patchset adapted
Marco Nelles
marco.nelles at credativ.de
Thu Jul 5 10:02:00 UTC 2012
The following commit has been merged in the master branch:
commit 9290abbb8edbe3c3c07d656eb55c5407b01e880c
Author: Marco Nelles <marco.nelles at credativ.de>
Date: Thu Jul 5 12:01:43 2012 +0200
LDISKFS kernel patchset adapted
diff --git a/debian/patches/ldiskfs-kernel-patchset.patch b/debian/patches/ldiskfs-kernel-patchset.patch
index 969dfd1..9635e8c 100644
--- a/debian/patches/ldiskfs-kernel-patchset.patch
+++ b/debian/patches/ldiskfs-kernel-patchset.patch
@@ -87,14 +87,14 @@ index 0000000..79a0e7f
+ struct ext4_group_desc *desc,
diff --git a/ldiskfs/kernel_patches/patches/ext4-alloc-policy-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-alloc-policy-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..7f499b9
+index 0000000..9a8b6f4
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-alloc-policy-2.6.32-vanilla.patch
@@ -0,0 +1,87 @@
+Index: linux-source-2.6.32/fs/ext4/ialloc.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ialloc.c 2012-07-04 15:58:30.630719126 +0200
-++++ linux-source-2.6.32/fs/ext4/ialloc.c 2012-07-04 15:58:45.151213256 +0200
++--- linux-source-2.6.32.orig/fs/ext4/ialloc.c 2012-07-05 11:44:31.987209607 +0200
+++++ linux-source-2.6.32/fs/ext4/ialloc.c 2012-07-05 11:44:44.644216399 +0200
+@@ -1086,6 +1086,36 @@
+ return ERR_PTR(err);
+ }
@@ -134,8 +134,8 @@ index 0000000..7f499b9
+ {
+Index: linux-source-2.6.32/fs/ext4/namei.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/namei.c 2012-07-04 15:58:33.456322237 +0200
-++++ linux-source-2.6.32/fs/ext4/namei.c 2012-07-04 15:58:45.151213256 +0200
++--- linux-source-2.6.32.orig/fs/ext4/namei.c 2012-07-05 11:44:33.958707562 +0200
+++++ linux-source-2.6.32/fs/ext4/namei.c 2012-07-05 11:44:44.644216399 +0200
+@@ -155,6 +155,12 @@
+ u32 ldp_magic;
+ };
@@ -168,9 +168,9 @@ index 0000000..7f499b9
+ }
+Index: linux-source-2.6.32/fs/ext4/ext4.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-04 15:58:41.459735724 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-04 15:58:45.151213256 +0200
-+@@ -1608,6 +1608,7 @@
++--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-05 11:44:41.034717694 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-05 11:44:44.644216399 +0200
++@@ -1602,6 +1602,7 @@
+ extern struct inode *ext4_new_inode(handle_t *, struct inode *, int,
+ const struct qstr *qstr, __u32 goal);
+ extern void ext4_free_inode(handle_t *, struct inode *);
@@ -303,15 +303,15 @@ index 0000000..697594e
+ sbi->s_proc = proc_mkdir(sb->s_id, ext4_proc_root);
diff --git a/ldiskfs/kernel_patches/patches/ext4-disable-mb-cache-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-disable-mb-cache-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..3f23ef7
+index 0000000..8046e8b
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-disable-mb-cache-2.6.32-vanilla.patch
@@ -0,0 +1,154 @@
+Index: linux-source-2.6.32/fs/ext4/ext4.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-04 15:59:08.331716889 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-04 15:59:10.143209664 +0200
-+@@ -834,7 +834,8 @@
++--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-05 11:45:13.167310617 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-05 11:45:14.900200850 +0200
++@@ -828,7 +828,8 @@
+ /*
+ * Mount flags
+ */
@@ -323,8 +323,8 @@ index 0000000..3f23ef7
+ #define EXT4_MOUNT_ERRORS_CONT 0x00010 /* Continue on errors */
+Index: linux-source-2.6.32/fs/ext4/super.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/super.c 2012-07-04 15:59:00.340214029 +0200
-++++ linux-source-2.6.32/fs/ext4/super.c 2012-07-04 15:59:10.147212396 +0200
++--- linux-source-2.6.32.orig/fs/ext4/super.c 2012-07-05 11:44:57.595319239 +0200
+++++ linux-source-2.6.32/fs/ext4/super.c 2012-07-05 11:45:14.904210309 +0200
+@@ -1156,6 +1156,7 @@
+ Opt_inode_readahead_blks, Opt_journal_ioprio,
+ Opt_mballoc, Opt_bigendian_extents, Opt_force_over_128tb,
@@ -353,8 +353,8 @@ index 0000000..3f23ef7
+ "Unrecognized mount option \"%s\" "
+Index: linux-source-2.6.32/fs/ext4/xattr.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/xattr.c 2012-07-04 15:59:08.331716889 +0200
-++++ linux-source-2.6.32/fs/ext4/xattr.c 2012-07-04 15:59:10.147212396 +0200
++--- linux-source-2.6.32.orig/fs/ext4/xattr.c 2012-07-05 11:45:13.167310617 +0200
+++++ linux-source-2.6.32/fs/ext4/xattr.c 2012-07-05 11:45:14.904210309 +0200
+@@ -86,7 +86,8 @@
+ # define ea_bdebug(f...)
+ #endif
@@ -801,14 +801,14 @@ index 0000000..4a5f900
+ exit_ext4_mballoc();
diff --git a/ldiskfs/kernel_patches/patches/ext4-export-64bit-name-hash-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-export-64bit-name-hash-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..a6b28f2
+index 0000000..f2b1484
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-export-64bit-name-hash-2.6.32-vanilla.patch
@@ -0,0 +1,134 @@
+Index: linux-source-2.6.32/fs/ext4/dir.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/dir.c 2012-07-04 15:59:06.546701369 +0200
-++++ linux-source-2.6.32/fs/ext4/dir.c 2012-07-04 15:59:15.411715981 +0200
++--- linux-source-2.6.32.orig/fs/ext4/dir.c 2012-07-05 11:45:11.140204588 +0200
+++++ linux-source-2.6.32/fs/ext4/dir.c 2012-07-05 11:45:18.746714659 +0200
+@@ -246,22 +246,50 @@
+ return ret;
+ }
@@ -922,9 +922,9 @@ index 0000000..a6b28f2
+ /*
+Index: linux-source-2.6.32/fs/ext4/ext4.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-04 15:59:10.143209664 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-04 15:59:15.411715981 +0200
-+@@ -815,6 +815,14 @@
++--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-05 11:45:14.900200850 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-05 11:45:18.746714659 +0200
++@@ -809,6 +809,14 @@
+ __u64 i_fs_version;
+ };
+
@@ -995,15 +995,15 @@ index 0000000..fc65734
+ if (err == -EAGAIN)
diff --git a/ldiskfs/kernel_patches/patches/ext4-extents-mount-option-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-extents-mount-option-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..5a17c2a
+index 0000000..ddbe425
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-extents-mount-option-2.6.32-vanilla.patch
@@ -0,0 +1,168 @@
+Index: linux-source-2.6.32/fs/ext4/ext4.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-04 15:58:54.198722885 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-04 15:59:00.336205405 +0200
-+@@ -856,6 +856,7 @@
++--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-05 11:44:51.610705754 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-05 11:45:04.162699334 +0200
++@@ -850,6 +850,7 @@
+ #define EXT4_MOUNT_QUOTA 0x80000 /* Some quota option set */
+ #define EXT4_MOUNT_USRQUOTA 0x100000 /* "old" user quota */
+ #define EXT4_MOUNT_GRPQUOTA 0x200000 /* "old" group quota */
@@ -1013,8 +1013,8 @@ index 0000000..5a17c2a
+ #define EXT4_MOUNT_I_VERSION 0x2000000 /* i_version support */
+Index: linux-source-2.6.32/fs/ext4/ext4_jbd2.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4_jbd2.h 2012-07-04 15:58:41.459735724 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4_jbd2.h 2012-07-04 15:59:00.336205405 +0200
++--- linux-source-2.6.32.orig/fs/ext4/ext4_jbd2.h 2012-07-05 11:44:41.038820625 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4_jbd2.h 2012-07-05 11:44:57.591213326 +0200
+@@ -33,7 +33,7 @@
+
+ #define EXT4_SINGLEDATA_TRANS_BLOCKS(sb) \
@@ -1026,8 +1026,8 @@ index 0000000..5a17c2a
+ ext4_handle_dirty_metadata(handle, NULL, bh)
+Index: linux-source-2.6.32/fs/ext4/extents.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/extents.c 2012-07-04 15:58:41.459735724 +0200
-++++ linux-source-2.6.32/fs/ext4/extents.c 2012-07-04 15:59:00.340214029 +0200
++--- linux-source-2.6.32.orig/fs/ext4/extents.c 2012-07-05 11:44:41.038820625 +0200
+++++ linux-source-2.6.32/fs/ext4/extents.c 2012-07-05 11:44:57.595319239 +0200
+@@ -2449,7 +2449,7 @@
+ * possible initialization would be here
+ */
@@ -1048,8 +1048,8 @@ index 0000000..5a17c2a
+ #ifdef EXTENTS_STATS
+Index: linux-source-2.6.32/fs/ext4/ialloc.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ialloc.c 2012-07-04 15:58:45.151213256 +0200
-++++ linux-source-2.6.32/fs/ext4/ialloc.c 2012-07-04 15:59:00.340214029 +0200
++--- linux-source-2.6.32.orig/fs/ext4/ialloc.c 2012-07-05 11:44:44.644216399 +0200
+++++ linux-source-2.6.32/fs/ext4/ialloc.c 2012-07-05 11:44:57.595319239 +0200
+@@ -1047,7 +1047,7 @@
+ if (err)
+ goto fail_free_drop;
@@ -1061,8 +1061,8 @@ index 0000000..5a17c2a
+ ext4_set_inode_flag(inode, EXT4_INODE_EXTENTS);
+Index: linux-source-2.6.32/fs/ext4/migrate.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/migrate.c 2012-07-04 15:58:01.135700550 +0200
-++++ linux-source-2.6.32/fs/ext4/migrate.c 2012-07-04 15:59:00.340214029 +0200
++--- linux-source-2.6.32.orig/fs/ext4/migrate.c 2012-07-04 15:59:27.711713486 +0200
+++++ linux-source-2.6.32/fs/ext4/migrate.c 2012-07-05 11:44:57.595319239 +0200
+@@ -459,13 +459,10 @@
+ unsigned long max_entries;
+ __u32 goal;
@@ -1083,8 +1083,8 @@ index 0000000..5a17c2a
+ if (S_ISLNK(inode->i_mode) && inode->i_blocks == 0)
+Index: linux-source-2.6.32/fs/ext4/super.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/super.c 2012-07-04 15:58:56.102719979 +0200
-++++ linux-source-2.6.32/fs/ext4/super.c 2012-07-04 15:59:00.340214029 +0200
++--- linux-source-2.6.32.orig/fs/ext4/super.c 2012-07-05 11:44:53.591707738 +0200
+++++ linux-source-2.6.32/fs/ext4/super.c 2012-07-05 11:44:57.595319239 +0200
+@@ -933,6 +933,8 @@
+ seq_puts(seq, ",journal_checksum");
+ if (test_opt(sb, NOBH))
@@ -1126,7 +1126,7 @@ index 0000000..5a17c2a
++ case Opt_extents:
++ if (!EXT4_HAS_INCOMPAT_FEATURE(sb,
++ EXT4_FEATURE_INCOMPAT_EXTENTS)) {
-++ ext4_warning(sb, "extents feature not enabled "
+++ ext4_warning(sb, __func__, "extents feature not enabled "
++ "on this filesystem, use tune2fs");
++ return 0;
++ }
@@ -1169,7 +1169,7 @@ index 0000000..5a17c2a
+ */
diff --git a/ldiskfs/kernel_patches/patches/ext4-fiemap-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-fiemap-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..796c76a
+index 0000000..dc186fe
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-fiemap-2.6.32-vanilla.patch
@@ -0,0 +1,111 @@
@@ -1180,9 +1180,9 @@ index 0000000..796c76a
+
+Index: linux-source-2.6.32/fs/ext4/ext4.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-04 15:59:00.336205405 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-04 15:59:02.115203073 +0200
-+@@ -480,7 +480,7 @@
++--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-05 11:44:57.591213326 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-05 11:44:58.786714509 +0200
++@@ -474,7 +474,7 @@
+ #define EXT4_IOC_GROUP_ADD _IOW('f', 8, struct ext4_new_group_input)
+ #define EXT4_IOC_MIGRATE _IO('f', 9)
+ /* note ioctl 10 reserved for an early version of the FIEMAP ioctl */
@@ -1193,8 +1193,8 @@ index 0000000..796c76a
+
+Index: linux-source-2.6.32/fs/ext4/ioctl.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ioctl.c 2012-07-04 15:58:00.975696354 +0200
-++++ linux-source-2.6.32/fs/ext4/ioctl.c 2012-07-04 15:59:02.115203073 +0200
++--- linux-source-2.6.32.orig/fs/ext4/ioctl.c 2012-07-04 15:59:27.539199985 +0200
+++++ linux-source-2.6.32/fs/ext4/ioctl.c 2012-07-05 11:44:58.794797520 +0200
+@@ -18,6 +18,71 @@
+ #include "ext4_jbd2.h"
+ #include "ext4.h"
@@ -1280,7 +1280,7 @@ index 0000000..796c76a
+Index: linux-source-2.6.32/fs/ext4/fiemap.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-++++ linux-source-2.6.32/fs/ext4/fiemap.h 2012-07-04 15:59:02.115203073 +0200
+++++ linux-source-2.6.32/fs/ext4/fiemap.h 2012-07-05 11:44:58.794797520 +0200
+@@ -0,0 +1,2 @@
++
++#include_next <fiemap.h>
@@ -1511,7 +1511,7 @@ index 0000000..3d13724
+ */
diff --git a/ldiskfs/kernel_patches/patches/ext4-journal-callback-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-journal-callback-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..5afa3f1
+index 0000000..833fa12
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-journal-callback-2.6.32-vanilla.patch
@@ -0,0 +1,464 @@
@@ -1713,7 +1713,7 @@ index 0000000..5afa3f1
++ ret = ext4_issue_discard(sb, entry->efd_group,
++ entry->efd_start_blk, entry->efd_count);
++ if (unlikely(ret == -EOPNOTSUPP)) {
-++ ext4_warning(sb, "discard not supported, "
+++ ext4_warning(sb, __func__, "discard not supported, "
++ "disabling");
++ clear_opt(EXT4_SB(sb)->s_mount_opt, DISCARD);
+ }
@@ -2224,15 +2224,15 @@ index 0000000..fa4aa0d
+ frame = frames + 1;
diff --git a/ldiskfs/kernel_patches/patches/ext4-large-eas-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-large-eas-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..7824b66
+index 0000000..f61a756
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-large-eas-2.6.32-vanilla.patch
@@ -0,0 +1,736 @@
+Index: linux-source-2.6.32/fs/ext4/ext4.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-04 15:59:06.546701369 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-04 15:59:08.331716889 +0200
-+@@ -1268,6 +1268,7 @@
++--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-05 11:45:11.140204588 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-05 11:45:13.167310617 +0200
++@@ -1262,6 +1262,7 @@
+ #define EXT4_FEATURE_INCOMPAT_64BIT 0x0080
+ #define EXT4_FEATURE_INCOMPAT_MMP 0x0100
+ #define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
@@ -2240,7 +2240,7 @@ index 0000000..7824b66
+ #define EXT4_FEATURE_INCOMPAT_DIRDATA 0x1000
+
+ #define EXT4_FEATURE_COMPAT_SUPP EXT2_FEATURE_COMPAT_EXT_ATTR
-+@@ -1277,6 +1278,7 @@
++@@ -1271,6 +1272,7 @@
+ EXT4_FEATURE_INCOMPAT_EXTENTS| \
+ EXT4_FEATURE_INCOMPAT_64BIT| \
+ EXT4_FEATURE_INCOMPAT_FLEX_BG| \
@@ -2248,7 +2248,7 @@ index 0000000..7824b66
+ EXT4_FEATURE_INCOMPAT_MMP| \
+ EXT4_FEATURE_INCOMPAT_DIRDATA)
+
-+@@ -1592,6 +1594,12 @@
++@@ -1586,6 +1588,12 @@
+ #endif
+
+ /*
@@ -2263,8 +2263,8 @@ index 0000000..7824b66
+
+Index: linux-source-2.6.32/fs/ext4/xattr.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/xattr.c 2012-07-04 15:58:35.586699256 +0200
-++++ linux-source-2.6.32/fs/ext4/xattr.c 2012-07-04 15:59:08.331716889 +0200
++--- linux-source-2.6.32.orig/fs/ext4/xattr.c 2012-07-05 11:44:34.954703493 +0200
+++++ linux-source-2.6.32/fs/ext4/xattr.c 2012-07-05 11:45:13.167310617 +0200
+@@ -168,19 +168,26 @@
+ }
+
@@ -2349,7 +2349,7 @@ index 0000000..7824b66
++
++ ea_inode = ext4_iget(parent->i_sb, ea_ino);
++ if (ea_inode == NULL || is_bad_inode(ea_inode)) {
-++ ext4_error(parent->i_sb, "error while reading EA inode %d",
+++ ext4_error(parent->i_sb, __func__, "error while reading EA inode %d",
++ ea_ino);
++ *err = -EIO;
++ return NULL;
@@ -2357,14 +2357,14 @@ index 0000000..7824b66
++
++ if (ea_inode->i_xattr_inode_parent != parent->i_ino ||
++ ea_inode->i_generation != parent->i_generation) {
-++ ext4_error(parent->i_sb, "Backpointer from EA inode %d "
+++ ext4_error(parent->i_sb, __func__, "Backpointer from EA inode %d "
++ "to parent invalid.", ea_ino);
++ *err = -EINVAL;
++ goto error;
++ }
++
++ if (!(EXT4_I(ea_inode)->i_flags & EXT4_EA_INODE_FL)) {
-++ ext4_error(parent->i_sb, "EA inode %d does not have "
+++ ext4_error(parent->i_sb, __func__, "EA inode %d does not have "
++ "EXT4_EA_INODE_FL flag set.\n", ea_ino);
++ *err = -EINVAL;
++ goto error;
@@ -2937,8 +2937,8 @@ index 0000000..7824b66
+ for (n = (le32_to_cpu(entry->e_value_size) +
+Index: linux-source-2.6.32/fs/ext4/xattr.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/xattr.h 2012-07-04 15:58:00.671709610 +0200
-++++ linux-source-2.6.32/fs/ext4/xattr.h 2012-07-04 15:59:08.331716889 +0200
++--- linux-source-2.6.32.orig/fs/ext4/xattr.h 2012-07-04 15:59:27.195199155 +0200
+++++ linux-source-2.6.32/fs/ext4/xattr.h 2012-07-05 11:45:13.167310617 +0200
+@@ -38,7 +38,7 @@
+ __u8 e_name_len; /* length of name */
+ __u8 e_name_index; /* attribute name index */
@@ -3108,14 +3108,14 @@ index 0000000..f260449
+ MODULE_LICENSE("GPL");
diff --git a/ldiskfs/kernel_patches/patches/ext4-max-dir-size-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-max-dir-size-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..2723b34
+index 0000000..e8f1f3f
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-max-dir-size-2.6.32-vanilla.patch
@@ -0,0 +1,67 @@
+Index: linux-source-2.6.32/fs/ext4/ialloc.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ialloc.c 2012-07-04 15:58:11.971815527 +0200
-++++ linux-source-2.6.32/fs/ext4/ialloc.c 2012-07-04 15:58:30.630719126 +0200
++--- linux-source-2.6.32.orig/fs/ext4/ialloc.c 2012-07-05 11:44:25.210698050 +0200
+++++ linux-source-2.6.32/fs/ext4/ialloc.c 2012-07-05 11:44:31.987209607 +0200
+@@ -818,11 +818,15 @@
+ sb = dir->i_sb;
+ ngroups = ext4_get_groups_count(sb);
@@ -3135,8 +3135,8 @@ index 0000000..2723b34
+ goal = sbi->s_inode_goal;
+Index: linux-source-2.6.32/fs/ext4/super.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/super.c 2012-07-04 15:58:19.187214761 +0200
-++++ linux-source-2.6.32/fs/ext4/super.c 2012-07-04 15:58:30.634722819 +0200
++--- linux-source-2.6.32.orig/fs/ext4/super.c 2012-07-05 11:44:26.539712783 +0200
+++++ linux-source-2.6.32/fs/ext4/super.c 2012-07-05 11:44:31.991217543 +0200
+@@ -2278,6 +2278,7 @@
+ EXT4_ATTR_OFFSET(inode_readahead_blks, 0644, sbi_ui_show,
+ inode_readahead_blks_store, s_inode_readahead_blks);
@@ -3155,9 +3155,9 @@ index 0000000..2723b34
+ ATTR_LIST(mb_min_to_scan),
+Index: linux-source-2.6.32/fs/ext4/ext4.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-04 15:58:19.187214761 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-04 15:58:30.634722819 +0200
-+@@ -1114,6 +1114,8 @@
++--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-05 11:44:26.535714680 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-05 11:44:31.991217543 +0200
++@@ -1108,6 +1108,8 @@
+ unsigned int s_log_groups_per_flex;
+ struct flex_groups *s_flex_groups;
+
@@ -3166,7 +3166,7 @@ index 0000000..2723b34
+ /* workqueue for dio unwritten */
+ struct workqueue_struct *dio_unwritten_wq;
+
-+@@ -1522,6 +1524,12 @@
++@@ -1516,6 +1518,12 @@
+ #define EXT4_MMP_MAX_CHECK_INTERVAL 300UL
+
+ /*
@@ -3181,15 +3181,15 @@ index 0000000..2723b34
+
diff --git a/ldiskfs/kernel_patches/patches/ext4-mballoc-extra-checks-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-mballoc-extra-checks-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..928940f
+index 0000000..f83f84e
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-mballoc-extra-checks-2.6.32-vanilla.patch
@@ -0,0 +1,317 @@
+Index: linux-source-2.6.32/fs/ext4/ext4.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-04 15:58:37.567760526 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-04 15:58:39.646713965 +0200
-+@@ -1879,6 +1879,7 @@
++--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-05 11:44:36.923210008 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-05 11:44:39.251702342 +0200
++@@ -1875,6 +1875,7 @@
+ ext4_grpblk_t bb_fragments; /* nr of freespace fragments */
+ ext4_grpblk_t bb_largest_free_order;/* order of largest frag in BG */
+ struct list_head bb_prealloc_list;
@@ -3199,8 +3199,8 @@ index 0000000..928940f
+ #endif
+Index: linux-source-2.6.32/fs/ext4/mballoc.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/mballoc.c 2012-07-04 15:58:37.571702169 +0200
-++++ linux-source-2.6.32/fs/ext4/mballoc.c 2012-07-04 15:58:39.646713965 +0200
++--- linux-source-2.6.32.orig/fs/ext4/mballoc.c 2012-07-05 11:44:36.923210008 +0200
+++++ linux-source-2.6.32/fs/ext4/mballoc.c 2012-07-05 11:44:39.251702342 +0200
+@@ -337,7 +337,7 @@
+ static struct kmem_cache *ext4_pspace_cachep;
+ static struct kmem_cache *ext4_ac_cachep;
@@ -3233,7 +3233,7 @@ index 0000000..928940f
+- grp->bb_free = free;
++ struct ext4_group_desc *gdp;
++ gdp = ext4_get_group_desc (sb, group, NULL);
-++ ext4_error(sb, "group %lu: %u blocks in bitmap, %u in bb, "
+++ ext4_error(sb, __func__, "group %lu: %u blocks in bitmap, %u in bb, "
++ "%u in gd, %lu pa's\n", (long unsigned int)group,
++ free, grp->bb_free, ext4_free_blks_count(sb, gdp),
++ grp->bb_prealloc_nr);
@@ -3363,7 +3363,7 @@ index 0000000..928940f
++ }
++
++ if (free != ext4_free_blks_count(sb, gdp)) {
-++ ext4_error(sb, "on-disk bitmap for group %d"
+++ ext4_error(sb, __func__, "on-disk bitmap for group %d"
++ "corrupted: %u blocks free in bitmap, %u - in gd\n",
++ group, free, ext4_free_blks_count(sb, gdp));
++ return -EIO;
@@ -3420,7 +3420,7 @@ index 0000000..928940f
+ count++;
+ }
++ if (count + skip != grp->bb_prealloc_nr) {
-++ ext4_error(sb, "lost preallocations: "
+++ ext4_error(sb, __func__, "lost preallocations: "
++ "count %d, bb_prealloc_nr %lu, skip %d\n",
++ count, grp->bb_prealloc_nr, skip);
++ return -EIO;
@@ -3491,8 +3491,8 @@ index 0000000..928940f
+
+Index: linux-source-2.6.32/fs/ext4/mballoc.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/mballoc.h 2012-07-04 15:58:02.302791087 +0200
-++++ linux-source-2.6.32/fs/ext4/mballoc.h 2012-07-04 15:58:39.646713965 +0200
++--- linux-source-2.6.32.orig/fs/ext4/mballoc.h 2012-07-04 15:59:28.906709399 +0200
+++++ linux-source-2.6.32/fs/ext4/mballoc.h 2012-07-05 11:44:39.263808733 +0200
+@@ -88,7 +88,7 @@
+ /*
+ * for which requests use 2^N search using buddies
@@ -3504,7 +3504,7 @@ index 0000000..928940f
+ * default group prealloc size 512 blocks
diff --git a/ldiskfs/kernel_patches/patches/ext4-mballoc-pa_free-mismatch-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-mballoc-pa_free-mismatch-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..b922a9b
+index 0000000..2984af6
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-mballoc-pa_free-mismatch-2.6.32-vanilla.patch
@@ -0,0 +1,111 @@
@@ -3551,7 +3551,7 @@ index 0000000..b922a9b
++ /* "free < pa->pa_free" means we maybe double alloc the same blocks,
++ * otherwise maybe leave some free blocks unavailable, no need to BUG.*/
++ if ((free > pa->pa_free && !pa->pa_error) || (free < pa->pa_free)) {
-++ ext4_error(sb, "pa free mismatch: [pa %p] "
+++ ext4_error(sb, __func__, "pa free mismatch: [pa %p] "
++ "[phy %lu] [logic %lu] [len %u] [free %u] "
++ "[error %u] [inode %lu] [freed %u]", pa,
++ (unsigned long)pa->pa_pstart,
@@ -3584,7 +3584,7 @@ index 0000000..b922a9b
++ * been updated or not when fail case. So can
++ * not revert pa_free back, just mark pa_error*/
++ pa->pa_error++;
-++ ext4_error(sb,
+++ ext4_error(sb, __func__,
++ "Updating bitmap error: [err %d] "
++ "[pa %p] [phy %lu] [logic %lu] "
++ "[len %u] [free %u] [error %u] "
@@ -3621,15 +3621,15 @@ index 0000000..b922a9b
+
diff --git a/ldiskfs/kernel_patches/patches/ext4-misc-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-misc-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..a410b59
+index 0000000..a7e1236
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-misc-2.6.32-vanilla.patch
@@ -0,0 +1,255 @@
+Index: linux-source-2.6.32/fs/ext4/ext4.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-04 15:58:39.646713965 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-04 15:58:41.459735724 +0200
-+@@ -1192,6 +1192,9 @@
++--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-05 11:44:39.251702342 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-05 11:44:41.034717694 +0200
++@@ -1186,6 +1186,9 @@
+
+ #define NEXT_ORPHAN(inode) EXT4_I(inode)->i_dtime
+
@@ -3639,7 +3639,7 @@ index 0000000..a410b59
+ /*
+ * Codes for operating systems
+ */
-+@@ -1637,6 +1640,7 @@
++@@ -1631,6 +1634,7 @@
+ extern void ext4_mb_put_buddy_cache_lock(struct super_block *,
+ ext4_group_t, int);
+ extern int ext4_trim_fs(struct super_block *, struct fstrim_range *);
@@ -3649,8 +3649,8 @@ index 0000000..a410b59
+ struct buffer_head *bh, ext4_fsblk_t blocknr);
+Index: linux-source-2.6.32/fs/ext4/ext4_extents.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4_extents.h 2012-07-04 15:58:13.150716936 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4_extents.h 2012-07-04 15:58:41.459735724 +0200
++--- linux-source-2.6.32.orig/fs/ext4/ext4_extents.h 2012-07-05 11:44:25.879199437 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4_extents.h 2012-07-05 11:44:41.034717694 +0200
+@@ -58,6 +58,12 @@
+ */
+ #define EXT_STATS_
@@ -3683,8 +3683,8 @@ index 0000000..a410b59
+ struct ext4_extent *ex2);
+Index: linux-source-2.6.32/fs/ext4/ext4_jbd2.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4_jbd2.c 2012-07-04 15:58:02.162700356 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4_jbd2.c 2012-07-04 15:58:41.459735724 +0200
++--- linux-source-2.6.32.orig/fs/ext4/ext4_jbd2.c 2012-07-04 15:59:28.786716592 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4_jbd2.c 2012-07-05 11:44:41.034717694 +0200
+@@ -31,6 +31,7 @@
+ }
+ return err;
@@ -3700,8 +3700,8 @@ index 0000000..a410b59
++EXPORT_SYMBOL(__ext4_handle_dirty_metadata);
+Index: linux-source-2.6.32/fs/ext4/ext4_jbd2.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4_jbd2.h 2012-07-04 15:58:02.130740526 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4_jbd2.h 2012-07-04 15:58:41.459735724 +0200
++--- linux-source-2.6.32.orig/fs/ext4/ext4_jbd2.h 2012-07-04 15:59:28.758712620 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4_jbd2.h 2012-07-05 11:44:41.038820625 +0200
+@@ -35,6 +35,8 @@
+ (EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_EXTENTS) \
+ ? 27U : 8U)
@@ -3713,8 +3713,8 @@ index 0000000..a410b59
+ * and the superblock, which are already accounted for. */
+Index: linux-source-2.6.32/fs/ext4/extents.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/extents.c 2012-07-04 15:58:13.150716936 +0200
-++++ linux-source-2.6.32/fs/ext4/extents.c 2012-07-04 15:58:41.459735724 +0200
++--- linux-source-2.6.32.orig/fs/ext4/extents.c 2012-07-05 11:44:25.879199437 +0200
+++++ linux-source-2.6.32/fs/ext4/extents.c 2012-07-05 11:44:41.038820625 +0200
+@@ -2030,6 +2030,55 @@
+ }
+
@@ -3788,8 +3788,8 @@ index 0000000..a410b59
++EXPORT_SYMBOL(ext4_ext_drop_refs);
+Index: linux-source-2.6.32/fs/ext4/inode.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/inode.c 2012-07-04 15:58:37.571702169 +0200
-++++ linux-source-2.6.32/fs/ext4/inode.c 2012-07-04 15:58:41.463819138 +0200
++--- linux-source-2.6.32.orig/fs/ext4/inode.c 2012-07-05 11:44:36.939315785 +0200
+++++ linux-source-2.6.32/fs/ext4/inode.c 2012-07-05 11:44:41.042715759 +0200
+@@ -5062,6 +5062,7 @@
+ iget_failed(inode);
+ return ERR_PTR(ret);
@@ -3800,8 +3800,8 @@ index 0000000..a410b59
+ struct ext4_inode *raw_inode,
+Index: linux-source-2.6.32/fs/ext4/mballoc.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/mballoc.c 2012-07-04 15:58:39.646713965 +0200
-++++ linux-source-2.6.32/fs/ext4/mballoc.c 2012-07-04 15:58:41.463819138 +0200
++--- linux-source-2.6.32.orig/fs/ext4/mballoc.c 2012-07-05 11:44:39.251702342 +0200
+++++ linux-source-2.6.32/fs/ext4/mballoc.c 2012-07-05 11:44:41.042715759 +0200
+@@ -4094,6 +4094,7 @@
+ if (ac)
+ kmem_cache_free(ext4_ac_cachep, ac);
@@ -3819,8 +3819,8 @@ index 0000000..a410b59
++
+Index: linux-source-2.6.32/fs/ext4/super.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/super.c 2012-07-04 15:58:37.571702169 +0200
-++++ linux-source-2.6.32/fs/ext4/super.c 2012-07-04 15:58:41.467818255 +0200
++--- linux-source-2.6.32.orig/fs/ext4/super.c 2012-07-05 11:44:36.923210008 +0200
+++++ linux-source-2.6.32/fs/ext4/super.c 2012-07-05 11:44:41.042715759 +0200
+@@ -129,6 +129,7 @@
+ (EXT4_DESC_SIZE(sb) >= EXT4_MIN_DESC_SIZE_64BIT ?
+ (__u32)le16_to_cpu(bg->bg_itable_unused_hi) << 16 : 0);
@@ -3882,7 +3882,7 @@ index 0000000..a410b59
+ "Unrecognized mount option \"%s\" "
diff --git a/ldiskfs/kernel_patches/patches/ext4-mmp-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-mmp-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..402c48e
+index 0000000..e2f21f7
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-mmp-2.6.32-vanilla.patch
@@ -0,0 +1,575 @@
@@ -3907,8 +3907,8 @@ index 0000000..402c48e
+
+Index: linux-source-2.6.32/fs/ext4/Makefile
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/Makefile 2012-07-04 15:58:02.971704332 +0200
-++++ linux-source-2.6.32/fs/ext4/Makefile 2012-07-04 15:58:19.187214761 +0200
++--- linux-source-2.6.32.orig/fs/ext4/Makefile 2012-07-04 15:59:29.499219891 +0200
+++++ linux-source-2.6.32/fs/ext4/Makefile 2012-07-05 11:44:26.535714680 +0200
+@@ -6,7 +6,8 @@
+
+ ext4-y := balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o \
@@ -3921,9 +3921,9 @@ index 0000000..402c48e
+ ext4-$(CONFIG_EXT4_FS_POSIX_ACL) += acl.o
+Index: linux-source-2.6.32/fs/ext4/ext4.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-04 15:58:13.150716936 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-04 15:58:19.187214761 +0200
-+@@ -969,7 +969,7 @@
++--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-05 11:44:25.879199437 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-05 11:44:26.535714680 +0200
++@@ -963,7 +963,7 @@
+ __le16 s_want_extra_isize; /* New inodes should reserve # bytes */
+ __le32 s_flags; /* Miscellaneous flags */
+ __le16 s_raid_stride; /* RAID stride */
@@ -3932,7 +3932,7 @@ index 0000000..402c48e
+ __le64 s_mmp_block; /* Block for multi-mount protection */
+ __le32 s_raid_stripe_width; /* blocks on all data disks (N*stride)*/
+ __u8 s_log_groups_per_flex; /* FLEX_BG group size */
-+@@ -1117,6 +1117,9 @@
++@@ -1111,6 +1111,9 @@
+ /* workqueue for dio unwritten */
+ struct workqueue_struct *dio_unwritten_wq;
+
@@ -3942,7 +3942,7 @@ index 0000000..402c48e
+ /* Lazy inode table initialization info */
+ struct ext4_li_request *s_li_request;
+ };
-+@@ -1258,7 +1261,8 @@
++@@ -1252,7 +1255,8 @@
+ EXT4_FEATURE_INCOMPAT_META_BG| \
+ EXT4_FEATURE_INCOMPAT_EXTENTS| \
+ EXT4_FEATURE_INCOMPAT_64BIT| \
@@ -3952,7 +3952,7 @@ index 0000000..402c48e
+ #define EXT4_FEATURE_RO_COMPAT_SUPP (EXT4_FEATURE_RO_COMPAT_SPARSE_SUPER| \
+ EXT4_FEATURE_RO_COMPAT_LARGE_FILE| \
+ EXT4_FEATURE_RO_COMPAT_GDT_CSUM| \
-+@@ -1457,6 +1461,67 @@
++@@ -1451,6 +1455,67 @@
+ };
+
+ /*
@@ -4020,7 +4020,7 @@ index 0000000..402c48e
+ * Function prototypes
+ */
+
-+@@ -1623,6 +1688,10 @@
++@@ -1619,6 +1684,10 @@
+ __attribute__ ((format (printf, 3, 4)));
+ extern void ext4_msg(struct super_block *, const char *, const char *, ...)
+ __attribute__ ((format (printf, 3, 4)));
@@ -4031,7 +4031,7 @@ index 0000000..402c48e
+ extern void ext4_grp_locked_error(struct super_block *, ext4_group_t,
+ const char *, const char *, ...)
+ __attribute__ ((format (printf, 4, 5)));
-+@@ -1905,6 +1974,8 @@
++@@ -1901,6 +1970,8 @@
+ __u64 start_orig, __u64 start_donor,
+ __u64 len, __u64 *moved_len);
+
@@ -4043,7 +4043,7 @@ index 0000000..402c48e
+Index: linux-source-2.6.32/fs/ext4/mmp.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-++++ linux-source-2.6.32/fs/ext4/mmp.c 2012-07-04 15:58:19.187214761 +0200
+++++ linux-source-2.6.32/fs/ext4/mmp.c 2012-07-05 11:44:26.539712783 +0200
+@@ -0,0 +1,351 @@
++#include <linux/fs.h>
++#include <linux/random.h>
@@ -4100,7 +4100,7 @@ index 0000000..402c48e
++ }
++ }
++ if (!*bh) {
-++ ext4_warning(sb, "Error while reading MMP block %llu",
+++ ext4_warning(sb, __func__, "Error while reading MMP block %llu",
++ mmp_block);
++ return -EIO;
++ }
@@ -4174,20 +4174,20 @@ index 0000000..402c48e
++ */
++ if (retval) {
++ if ((failed_writes % 60) == 0)
-++ ext4_error(sb, "Error writing to MMP block");
+++ ext4_error(sb, __func__, "Error writing to MMP block");
++ failed_writes++;
++ }
++
++ if (!(le32_to_cpu(es->s_feature_incompat) &
++ EXT4_FEATURE_INCOMPAT_MMP)) {
-++ ext4_warning(sb, "kmmpd being stopped since MMP feature"
+++ ext4_warning(sb, __func__, "kmmpd being stopped since MMP feature"
++ " has been disabled.");
++ EXT4_SB(sb)->s_mmp_tsk = NULL;
++ goto failed;
++ }
++
++ if (sb->s_flags & MS_RDONLY) {
-++ ext4_warning(sb, "kmmpd being stopped since filesystem "
+++ ext4_warning(sb, __func__, "kmmpd being stopped since filesystem "
++ "has been remounted as readonly.");
++ EXT4_SB(sb)->s_mmp_tsk = NULL;
++ goto failed;
@@ -4210,7 +4210,7 @@ index 0000000..402c48e
++
++ retval = read_mmp_block(sb, &bh_check, mmp_block);
++ if (retval) {
-++ ext4_error(sb, "error reading MMP data: %d",
+++ ext4_error(sb, __func__, "error reading MMP data: %d",
++ retval);
++
++ EXT4_SB(sb)->s_mmp_tsk = NULL;
@@ -4225,7 +4225,7 @@ index 0000000..402c48e
++ "Error while updating MMP info. "
++ "The filesystem seems to have been"
++ " multiply mounted.");
-++ ext4_error(sb, "abort");
+++ ext4_error(sb, __func__, "abort");
++ goto failed;
++ }
++ put_bh(bh_check);
@@ -4287,7 +4287,7 @@ index 0000000..402c48e
++
++ if (mmp_block < le32_to_cpu(es->s_first_data_block) ||
++ mmp_block >= ext4_blocks_count(es)) {
-++ ext4_warning(sb, "Invalid MMP block in superblock");
+++ ext4_warning(sb, __func__, "Invalid MMP block in superblock");
++ goto failed;
++ }
++
@@ -4321,11 +4321,11 @@ index 0000000..402c48e
++
++ /* Print MMP interval if more than 20 secs. */
++ if (wait_time > EXT4_MMP_MIN_CHECK_INTERVAL * 4)
-++ ext4_warning(sb, "MMP interval %u higher than expected, please"
+++ ext4_warning(sb, __func__, "MMP interval %u higher than expected, please"
++ " wait.\n", wait_time * 2);
++
++ if (schedule_timeout_interruptible(HZ * wait_time) != 0) {
-++ ext4_warning(sb, "MMP startup interrupted, failing mount\n");
+++ ext4_warning(sb, __func__, "MMP startup interrupted, failing mount\n");
++ goto failed;
++ }
++
@@ -4353,7 +4353,7 @@ index 0000000..402c48e
++ * wait for MMP interval and check mmp_seq.
++ */
++ if (schedule_timeout_interruptible(HZ * wait_time) != 0) {
-++ ext4_warning(sb, "MMP startup interrupted, failing mount\n");
+++ ext4_warning(sb, __func__, "MMP startup interrupted, failing mount\n");
++ goto failed;
++ }
++
@@ -4369,7 +4369,7 @@ index 0000000..402c48e
++
++ mmpd_data = kmalloc(sizeof(struct mmpd_data), GFP_KERNEL);
++ if (!mmpd_data) {
-++ ext4_warning(sb, "not enough memory for mmpd_data");
+++ ext4_warning(sb, __func__, "not enough memory for mmpd_data");
++ goto failed;
++ }
++ mmpd_data->sb = sb;
@@ -4384,7 +4384,7 @@ index 0000000..402c48e
++ if (IS_ERR(EXT4_SB(sb)->s_mmp_tsk)) {
++ EXT4_SB(sb)->s_mmp_tsk = NULL;
++ kfree(mmpd_data);
-++ ext4_warning(sb, "Unable to create kmmpd thread for %s.",
+++ ext4_warning(sb, __func__, "Unable to create kmmpd thread for %s.",
++ sb->s_id);
++ goto failed;
++ }
@@ -4398,8 +4398,8 @@ index 0000000..402c48e
++
+Index: linux-source-2.6.32/fs/ext4/super.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/super.c 2012-07-04 15:58:13.154819502 +0200
-++++ linux-source-2.6.32/fs/ext4/super.c 2012-07-04 15:58:19.187214761 +0200
++--- linux-source-2.6.32.orig/fs/ext4/super.c 2012-07-05 11:44:25.883210089 +0200
+++++ linux-source-2.6.32/fs/ext4/super.c 2012-07-05 11:44:26.539712783 +0200
+@@ -40,6 +40,8 @@
+ #include <linux/log2.h>
+ #include <linux/crc16.h>
@@ -4518,15 +4518,15 @@ index 0000000..fa66ccd
+ ext4_mark_inode_dirty(handle, dir);
diff --git a/ldiskfs/kernel_patches/patches/ext4-osd-iam-exports-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-osd-iam-exports-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..80d9e84
+index 0000000..c680178
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-osd-iam-exports-2.6.32-vanilla.patch
@@ -0,0 +1,68 @@
+Index: linux-source-2.6.32/fs/ext4/ext4.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-04 15:58:52.426700983 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-04 15:58:54.198722885 +0200
-+@@ -1711,6 +1711,9 @@
++--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-05 11:44:49.879708890 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-05 11:44:51.610705754 +0200
++@@ -1705,6 +1705,9 @@
+ #define ll_ext4_find_entry(inode, dentry, res_dir) ext4_find_entry(inode, &(dentry)->d_name, res_dir)
+ extern int ext4_add_dot_dotdot(handle_t *handle, struct inode *dir,
+ struct inode *inode);
@@ -4538,8 +4538,8 @@ index 0000000..80d9e84
+ extern int ext4_group_add(struct super_block *sb,
+Index: linux-source-2.6.32/fs/ext4/hash.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/hash.c 2012-07-04 15:58:01.459710148 +0200
-++++ linux-source-2.6.32/fs/ext4/hash.c 2012-07-04 15:58:54.198722885 +0200
++--- linux-source-2.6.32.orig/fs/ext4/hash.c 2012-07-04 15:59:28.103698041 +0200
+++++ linux-source-2.6.32/fs/ext4/hash.c 2012-07-05 11:44:51.610705754 +0200
+@@ -9,6 +9,7 @@
+ * License.
+ */
@@ -4555,8 +4555,8 @@ index 0000000..80d9e84
++EXPORT_SYMBOL(ext4fs_dirhash);
+Index: linux-source-2.6.32/fs/ext4/namei.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/namei.c 2012-07-04 15:58:52.426700983 +0200
-++++ linux-source-2.6.32/fs/ext4/namei.c 2012-07-04 15:58:54.198722885 +0200
++--- linux-source-2.6.32.orig/fs/ext4/namei.c 2012-07-05 11:44:49.879708890 +0200
+++++ linux-source-2.6.32/fs/ext4/namei.c 2012-07-05 11:44:51.610705754 +0200
+@@ -49,9 +49,9 @@
+ #define NAMEI_RA_SIZE (NAMEI_RA_CHUNKS * NAMEI_RA_BLOCKS)
+ #define NAMEI_RA_INDEX(c,b) (((c) * NAMEI_RA_BLOCKS) + (b))
@@ -4580,8 +4580,8 @@ index 0000000..80d9e84
+ #define assert(test) J_ASSERT(test)
+Index: linux-source-2.6.32/fs/ext4/super.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/super.c 2012-07-04 15:58:49.539713974 +0200
-++++ linux-source-2.6.32/fs/ext4/super.c 2012-07-04 15:58:54.198722885 +0200
++--- linux-source-2.6.32.orig/fs/ext4/super.c 2012-07-05 11:44:47.986701517 +0200
+++++ linux-source-2.6.32/fs/ext4/super.c 2012-07-05 11:44:51.610705754 +0200
+@@ -450,6 +450,7 @@
+
+ ext4_handle_error(sb);
@@ -4592,15 +4592,15 @@ index 0000000..80d9e84
+ * ext4_abort is a much stronger failure handler than ext4_error. The
diff --git a/ldiskfs/kernel_patches/patches/ext4-osd-iop-common-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-osd-iop-common-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..b9ba486
+index 0000000..77fca89
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-osd-iop-common-2.6.32-vanilla.patch
@@ -0,0 +1,229 @@
+Index: linux-source-2.6.32/fs/ext4/ext4.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-04 15:58:49.535700522 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-04 15:58:52.426700983 +0200
-+@@ -1698,6 +1698,19 @@
++--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-05 11:44:47.986701517 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-05 11:44:49.879708890 +0200
++@@ -1692,6 +1692,19 @@
+ extern int ext4_orphan_del(handle_t *, struct inode *);
+ extern int ext4_htree_fill_tree(struct file *dir_file, __u32 start_hash,
+ __u32 start_minor_hash, __u32 *next_hash);
@@ -4622,8 +4622,8 @@ index 0000000..b9ba486
+ extern int ext4_group_add(struct super_block *sb,
+Index: linux-source-2.6.32/fs/ext4/namei.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/namei.c 2012-07-04 15:58:49.539713974 +0200
-++++ linux-source-2.6.32/fs/ext4/namei.c 2012-07-04 15:58:52.426700983 +0200
++--- linux-source-2.6.32.orig/fs/ext4/namei.c 2012-07-05 11:44:47.986701517 +0200
+++++ linux-source-2.6.32/fs/ext4/namei.c 2012-07-05 11:44:49.879708890 +0200
+@@ -24,6 +24,7 @@
+ * Theodore Ts'o, 2002
+ */
@@ -4827,14 +4827,14 @@ index 0000000..b9ba486
+ ext4_mark_inode_dirty(handle, inode);
diff --git a/ldiskfs/kernel_patches/patches/ext4-pdir-fix-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-pdir-fix-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..aca9779
+index 0000000..ddfb53b
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-pdir-fix-2.6.32-vanilla.patch
@@ -0,0 +1,62 @@
+Index: linux-source-2.6.32/fs/ext4/ext4.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-04 15:58:45.151213256 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-04 15:58:49.535700522 +0200
++--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-05 11:44:44.644216399 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-05 11:44:47.986701517 +0200
+@@ -16,6 +16,7 @@
+ #ifndef _EXT4_H
+ #define _EXT4_H
@@ -4843,7 +4843,7 @@ index 0000000..aca9779
+ #include <linux/types.h>
+ #include <linux/blkdev.h>
+ #include <linux/magic.h>
-+@@ -707,6 +708,10 @@
++@@ -701,6 +702,10 @@
+ __u32 i_dtime;
+ ext4_fsblk_t i_file_acl;
+
@@ -4856,8 +4856,8 @@ index 0000000..aca9779
+ * this file's inode. Constant across the lifetime of the inode,
+Index: linux-source-2.6.32/fs/ext4/namei.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/namei.c 2012-07-04 15:58:45.151213256 +0200
-++++ linux-source-2.6.32/fs/ext4/namei.c 2012-07-04 15:58:49.539713974 +0200
++--- linux-source-2.6.32.orig/fs/ext4/namei.c 2012-07-05 11:44:44.644216399 +0200
+++++ linux-source-2.6.32/fs/ext4/namei.c 2012-07-05 11:44:47.986701517 +0200
+@@ -53,6 +53,11 @@
+ ext4_lblk_t *block, int *err)
+ {
@@ -4882,8 +4882,8 @@ index 0000000..aca9779
+
+Index: linux-source-2.6.32/fs/ext4/super.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/super.c 2012-07-04 15:58:48.055203816 +0200
-++++ linux-source-2.6.32/fs/ext4/super.c 2012-07-04 15:58:49.539713974 +0200
++--- linux-source-2.6.32.orig/fs/ext4/super.c 2012-07-05 11:44:46.859215944 +0200
+++++ linux-source-2.6.32/fs/ext4/super.c 2012-07-05 11:44:47.986701517 +0200
+@@ -740,6 +740,8 @@
+
+ ei->vfs_inode.i_version = 1;
@@ -4895,15 +4895,15 @@ index 0000000..aca9779
+ spin_lock_init(&ei->i_prealloc_lock);
diff --git a/ldiskfs/kernel_patches/patches/ext4-prealloc-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-prealloc-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..7329f54
+index 0000000..0a311e7
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-prealloc-2.6.32-vanilla.patch
@@ -0,0 +1,381 @@
+Index: linux-source-2.6.32/fs/ext4/ext4.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-04 15:58:35.586699256 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-04 15:58:37.567760526 +0200
-+@@ -1076,11 +1076,14 @@
++--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-05 11:44:34.954703493 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-05 11:44:36.923210008 +0200
++@@ -1070,11 +1070,14 @@
+
+ /* tunables */
+ unsigned long s_stripe;
@@ -4921,8 +4921,8 @@ index 0000000..7329f54
+ /* where last allocation was done - for stream allocation */
+Index: linux-source-2.6.32/fs/ext4/mballoc.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/mballoc.c 2012-07-04 15:58:13.150716936 +0200
-++++ linux-source-2.6.32/fs/ext4/mballoc.c 2012-07-04 15:58:37.571702169 +0200
++--- linux-source-2.6.32.orig/fs/ext4/mballoc.c 2012-07-05 11:44:25.879199437 +0200
+++++ linux-source-2.6.32/fs/ext4/mballoc.c 2012-07-05 11:44:36.923210008 +0200
+@@ -1821,6 +1821,25 @@
+ ext4_mb_check_limits(ac, e4b, 1);
+ }
@@ -5242,8 +5242,8 @@ index 0000000..7329f54
+ * locality group prealloc space are per cpu. The reason for having
+Index: linux-source-2.6.32/fs/ext4/super.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/super.c 2012-07-04 15:58:30.634722819 +0200
-++++ linux-source-2.6.32/fs/ext4/super.c 2012-07-04 15:58:37.571702169 +0200
++--- linux-source-2.6.32.orig/fs/ext4/super.c 2012-07-05 11:44:31.991217543 +0200
+++++ linux-source-2.6.32/fs/ext4/super.c 2012-07-05 11:44:36.923210008 +0200
+@@ -2283,7 +2283,8 @@
+ EXT4_RW_ATTR_SBI_UI(mb_max_to_scan, s_mb_max_to_scan);
+ EXT4_RW_ATTR_SBI_UI(mb_min_to_scan, s_mb_min_to_scan);
@@ -5266,8 +5266,8 @@ index 0000000..7329f54
+ NULL,
+Index: linux-source-2.6.32/fs/ext4/inode.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/inode.c 2012-07-04 15:58:11.967711403 +0200
-++++ linux-source-2.6.32/fs/ext4/inode.c 2012-07-04 15:58:37.571702169 +0200
++--- linux-source-2.6.32.orig/fs/ext4/inode.c 2012-07-05 11:44:25.210698050 +0200
+++++ linux-source-2.6.32/fs/ext4/inode.c 2012-07-05 11:44:36.939315785 +0200
+@@ -2884,6 +2884,11 @@
+ if (unlikely(sbi->s_mount_flags & EXT4_MF_FS_ABORTED))
+ return -EROFS;
@@ -5338,7 +5338,7 @@ index 0000000..204f59c
+ * Every block group has an inode bitmap, a block
diff --git a/ldiskfs/kernel_patches/patches/ext4-store-tree-generation-at-find-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-store-tree-generation-at-find-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..3231e6c
+index 0000000..b32e180
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-store-tree-generation-at-find-2.6.32-vanilla.patch
@@ -0,0 +1,67 @@
@@ -5386,7 +5386,7 @@ index 0000000..3231e6c
+- ex = path[depth].p_ext;
++ if (unlikely(path[depth].p_hdr == NULL)) {
++ up_read(&EXT4_I(inode)->i_data_sem);
-++ EXT4_ERROR_INODE(inode, "path[%d].p_hdr == NULL", depth);
+++ ext4_error_inode(__func__, inode, "path[%d].p_hdr == NULL", depth);
++ err = -EIO;
++ break;
++ }
@@ -5411,10 +5411,10 @@ index 0000000..3231e6c
+ if (err < 0)
diff --git a/ldiskfs/kernel_patches/patches/ext4-update-vanilla-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-update-vanilla-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..29d52ae
+index 0000000..259fce6
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-update-vanilla-2.6.32-vanilla.patch
-@@ -0,0 +1,529 @@
+@@ -0,0 +1,525 @@
+Index: linux-source-2.6.32/fs/ext4/ext4.h
+===================================================================
+--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-04 15:58:11.971815527 +0200
@@ -5427,19 +5427,6 @@ index 0000000..29d52ae
+ #include <linux/seqlock.h>
+ #include <linux/mutex.h>
+ #include <linux/timer.h>
-+@@ -56,6 +57,12 @@
-+ #define ext4_debug(f, a...) do {} while (0)
-+ #endif
-+
-++#define EXT4_ERROR_INODE(inode, fmt, a...) \
-++ ext4_error_inode(__func__, (inode), (fmt), ## a);
-++
-++#define EXT4_ERROR_FILE(file, fmt, a...) \
-++ ext4_error_file(__func__, (file), (fmt), ## a);
-++
-+ /* data type for block offset of block group */
-+ typedef int ext4_grpblk_t;
-+
+@@ -1109,6 +1116,9 @@
+
+ /* workqueue for dio unwritten */
@@ -5490,6 +5477,15 @@ index 0000000..29d52ae
+ /* inode.c */
+ int ext4_forget(handle_t *handle, int is_metadata, struct inode *inode,
+ struct buffer_head *bh, ext4_fsblk_t blocknr);
++@@ -1580,6 +1580,8 @@ extern int ext4_group_extend(struct supe
++ /* super.c */
++ extern void ext4_error(struct super_block *, const char *, const char *, ...)
++ __attribute__ ((format (printf, 3, 4)));
+++extern void ext4_error_inode(const char *, struct inode *, const char *, ...)
+++ __attribute__ ((format (printf, 3, 4)));
++ extern void __ext4_std_error(struct super_block *, const char *, int);
++ extern void ext4_abort(struct super_block *, const char *, const char *, ...)
++ __attribute__ ((format (printf, 3, 4)));
+Index: linux-source-2.6.32/fs/ext4/ext4_extents.h
+===================================================================
+--- linux-source-2.6.32.orig/fs/ext4/ext4_extents.h 2012-07-04 15:58:09.640229219 +0200
@@ -6248,15 +6244,15 @@ index 0000000..d9bf1d9
+ goto out_stop;
diff --git a/ldiskfs/kernel_patches/patches/ext4-xattr-no-update-ctime-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4-xattr-no-update-ctime-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..d8d0928
+index 0000000..e9eb173
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4-xattr-no-update-ctime-2.6.32-vanilla.patch
@@ -0,0 +1,32 @@
+Index: linux-source-2.6.32/fs/ext4/ext4.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-04 15:58:30.634722819 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-04 15:58:35.586699256 +0200
-+@@ -1530,6 +1530,13 @@
++--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-05 11:44:31.991217543 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-05 11:44:34.954703493 +0200
++@@ -1524,6 +1524,13 @@
+ #define EXT4_MAX_DIR_SIZE_NAME "max_dir_size"
+
+ /*
@@ -6272,8 +6268,8 @@ index 0000000..d8d0928
+
+Index: linux-source-2.6.32/fs/ext4/xattr.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/xattr.c 2012-07-04 15:58:02.554702704 +0200
-++++ linux-source-2.6.32/fs/ext4/xattr.c 2012-07-04 15:58:35.586699256 +0200
++--- linux-source-2.6.32.orig/fs/ext4/xattr.c 2012-07-04 15:59:29.127204411 +0200
+++++ linux-source-2.6.32/fs/ext4/xattr.c 2012-07-05 11:44:34.954703493 +0200
+@@ -1045,7 +1045,8 @@
+ }
+ if (!error) {
@@ -6286,7 +6282,7 @@ index 0000000..d8d0928
+ error = ext4_mark_iloc_dirty(handle, inode, &is.iloc);
diff --git a/ldiskfs/kernel_patches/patches/ext4_data_in_dirent-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4_data_in_dirent-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..0a31b62
+index 0000000..84c301c
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4_data_in_dirent-2.6.32-vanilla.patch
@@ -0,0 +1,521 @@
@@ -6301,8 +6297,8 @@ index 0000000..0a31b62
+
+Index: linux-source-2.6.32/fs/ext4/dir.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/dir.c 2012-07-04 15:58:00.775709704 +0200
-++++ linux-source-2.6.32/fs/ext4/dir.c 2012-07-04 15:59:06.546701369 +0200
++--- linux-source-2.6.32.orig/fs/ext4/dir.c 2012-07-04 15:59:27.315205128 +0200
+++++ linux-source-2.6.32/fs/ext4/dir.c 2012-07-05 11:45:11.140204588 +0200
+@@ -53,11 +53,18 @@
+
+ static unsigned char get_dtype(struct super_block *sb, int filetype)
@@ -6377,9 +6373,9 @@ index 0000000..0a31b62
+ while (*p) {
+Index: linux-source-2.6.32/fs/ext4/ext4.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-04 15:59:02.115203073 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-04 15:59:06.546701369 +0200
-+@@ -1268,6 +1268,7 @@
++--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-05 11:45:07.767713946 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-05 11:45:11.140204588 +0200
++@@ -1262,6 +1262,7 @@
+ #define EXT4_FEATURE_INCOMPAT_64BIT 0x0080
+ #define EXT4_FEATURE_INCOMPAT_MMP 0x0100
+ #define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
@@ -6387,7 +6383,7 @@ index 0000000..0a31b62
+
+ #define EXT4_FEATURE_COMPAT_SUPP EXT2_FEATURE_COMPAT_EXT_ATTR
+ #define EXT4_FEATURE_INCOMPAT_SUPP (EXT4_FEATURE_INCOMPAT_FILETYPE| \
-+@@ -1276,7 +1277,9 @@
++@@ -1270,7 +1271,9 @@
+ EXT4_FEATURE_INCOMPAT_EXTENTS| \
+ EXT4_FEATURE_INCOMPAT_64BIT| \
+ EXT4_FEATURE_INCOMPAT_FLEX_BG| \
@@ -6398,7 +6394,7 @@ index 0000000..0a31b62
+ #define EXT4_FEATURE_RO_COMPAT_SUPP (EXT4_FEATURE_RO_COMPAT_SPARSE_SUPER| \
+ EXT4_FEATURE_RO_COMPAT_LARGE_FILE| \
+ EXT4_FEATURE_RO_COMPAT_GDT_CSUM| \
-+@@ -1358,6 +1361,43 @@
++@@ -1352,6 +1355,43 @@
+ #define EXT4_FT_SYMLINK 7
+
+ #define EXT4_FT_MAX 8
@@ -6442,7 +6438,7 @@ index 0000000..0a31b62
+
+ /*
+ * EXT4_DIR_PAD defines the directory entries boundaries
-+@@ -1366,8 +1406,11 @@
++@@ -1360,8 +1400,11 @@
+ */
+ #define EXT4_DIR_PAD 4
+ #define EXT4_DIR_ROUND (EXT4_DIR_PAD - 1)
@@ -6455,7 +6451,7 @@ index 0000000..0a31b62
+ #define EXT4_MAX_REC_LEN ((1<<16)-1)
+
+ /*
-+@@ -1711,7 +1754,7 @@
++@@ -1705,7 +1748,7 @@
+ struct ext4_dir_entry_2 ** res_dir);
+ #define ll_ext4_find_entry(inode, dentry, res_dir) ext4_find_entry(inode, &(dentry)->d_name, res_dir)
+ extern int ext4_add_dot_dotdot(handle_t *handle, struct inode *dir,
@@ -6464,7 +6460,7 @@ index 0000000..0a31b62
+ extern struct buffer_head *ext4_append(handle_t *handle,
+ struct inode *inode,
+ ext4_lblk_t *block, int *err);
-+@@ -2042,6 +2085,28 @@
++@@ -2038,6 +2081,28 @@
+
+ #define in_range(b, first, len) ((b) >= (first) && (b) <= (first) + (len) - 1)
+
@@ -6495,8 +6491,8 @@ index 0000000..0a31b62
+ #endif /* _EXT4_H */
+Index: linux-source-2.6.32/fs/ext4/namei.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/namei.c 2012-07-04 15:58:59.263698089 +0200
-++++ linux-source-2.6.32/fs/ext4/namei.c 2012-07-04 15:59:06.546701369 +0200
++--- linux-source-2.6.32.orig/fs/ext4/namei.c 2012-07-05 11:44:56.630714942 +0200
+++++ linux-source-2.6.32/fs/ext4/namei.c 2012-07-05 11:45:11.144310120 +0200
+@@ -169,7 +169,8 @@
+ static unsigned dx_get_limit(struct dx_entry *entries);
+ static void dx_set_count(struct dx_entry *entries, unsigned value);
@@ -6813,14 +6809,14 @@ index 0000000..0a31b62
+ ext4_error(inode->i_sb, __func__,
diff --git a/ldiskfs/kernel_patches/patches/ext4_pdirop-2.6.32-vanilla.patch b/ldiskfs/kernel_patches/patches/ext4_pdirop-2.6.32-vanilla.patch
new file mode 100644
-index 0000000..abb8a5e
+index 0000000..158e3e9
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext4_pdirop-2.6.32-vanilla.patch
@@ -0,0 +1,2272 @@
+Index: linux-source-2.6.32/include/linux/htree_lock.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-++++ linux-source-2.6.32/include/linux/htree_lock.h 2012-07-04 15:59:20.498704833 +0200
+++++ linux-source-2.6.32/include/linux/htree_lock.h 2012-07-05 11:45:24.538721202 +0200
+@@ -0,0 +1,187 @@
++/*
++ * include/linux/htree_lock.h
@@ -7012,7 +7008,7 @@ index 0000000..abb8a5e
+Index: linux-source-2.6.32/fs/ext4/htree_lock.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-++++ linux-source-2.6.32/fs/ext4/htree_lock.c 2012-07-04 15:59:20.498704833 +0200
+++++ linux-source-2.6.32/fs/ext4/htree_lock.c 2012-07-05 11:45:24.538721202 +0200
+@@ -0,0 +1,880 @@
++/*
++ * fs/ext4/htree_lock.c
@@ -7896,8 +7892,8 @@ index 0000000..abb8a5e
++EXPORT_SYMBOL(htree_lock_free);
+Index: linux-source-2.6.32/fs/ext4/ext4.h
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-04 15:59:15.411715981 +0200
-++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-04 15:59:20.498704833 +0200
++--- linux-source-2.6.32.orig/fs/ext4/ext4.h 2012-07-05 11:45:18.746714659 +0200
+++++ linux-source-2.6.32/fs/ext4/ext4.h 2012-07-05 11:45:24.538721202 +0200
+@@ -29,6 +29,7 @@
+ #include <linux/mutex.h>
+ #include <linux/timer.h>
@@ -7906,7 +7902,7 @@ index 0000000..abb8a5e
+ #include <linux/blockgroup_lock.h>
+ #include <linux/percpu_counter.h>
+ #ifdef __KERNEL__
-+@@ -1279,6 +1280,7 @@
++@@ -1273,6 +1274,7 @@
+ #define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
+ #define EXT4_FEATURE_INCOMPAT_EA_INODE 0x0400
+ #define EXT4_FEATURE_INCOMPAT_DIRDATA 0x1000
@@ -7914,7 +7910,7 @@ index 0000000..abb8a5e
+
+ #define EXT4_FEATURE_COMPAT_SUPP EXT2_FEATURE_COMPAT_EXT_ATTR
+ #define EXT4_FEATURE_INCOMPAT_SUPP (EXT4_FEATURE_INCOMPAT_FILETYPE| \
-+@@ -1289,7 +1291,8 @@
++@@ -1283,7 +1285,8 @@
+ EXT4_FEATURE_INCOMPAT_FLEX_BG| \
+ EXT4_FEATURE_INCOMPAT_EA_INODE| \
+ EXT4_FEATURE_INCOMPAT_MMP| \
@@ -7924,7 +7920,7 @@ index 0000000..abb8a5e
+
+ #define EXT4_FEATURE_RO_COMPAT_SUPP (EXT4_FEATURE_RO_COMPAT_SPARSE_SUPER| \
+ EXT4_FEATURE_RO_COMPAT_LARGE_FILE| \
-+@@ -1506,6 +1509,76 @@
++@@ -1500,6 +1503,76 @@
+ */
+ #define ERR_BAD_DX_DIR -75000
+
@@ -8001,7 +7997,7 @@ index 0000000..abb8a5e
+ void ext4_get_group_no_and_offset(struct super_block *sb, ext4_fsblk_t blocknr,
+ ext4_group_t *blockgrpp, ext4_grpblk_t *offsetp);
+
-+@@ -1762,14 +1835,16 @@
++@@ -1756,14 +1829,16 @@
+ extern struct inode *ext4_create_inode(handle_t *handle,
+ struct inode * dir, int mode);
+ extern int ext4_add_entry(handle_t *handle, struct dentry *dentry,
@@ -8021,7 +8017,7 @@ index 0000000..abb8a5e
+ extern int ext4_add_dot_dotdot(handle_t *handle, struct inode *dir,
+ struct inode *inode, const void *, const void *);
+ extern struct buffer_head *ext4_append(handle_t *handle,
-+@@ -1879,13 +1954,15 @@
++@@ -1875,13 +1950,15 @@
+ es->s_r_blocks_count_hi = cpu_to_le32(blk >> 32);
+ }
+
@@ -8043,8 +8039,8 @@ index 0000000..abb8a5e
+ static inline void ext4_isize_set(struct ext4_inode *raw_inode, loff_t i_size)
+Index: linux-source-2.6.32/fs/ext4/namei.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/namei.c 2012-07-04 15:59:14.471215444 +0200
-++++ linux-source-2.6.32/fs/ext4/namei.c 2012-07-04 15:59:20.498704833 +0200
++--- linux-source-2.6.32.orig/fs/ext4/namei.c 2012-07-05 11:45:17.823217452 +0200
+++++ linux-source-2.6.32/fs/ext4/namei.c 2012-07-05 11:45:24.542716615 +0200
+@@ -176,7 +176,7 @@
+ struct inode *dir,
+ struct dx_hash_info *hinfo,
@@ -9065,8 +9061,8 @@ index 0000000..abb8a5e
+ old_de2, old_bh2);
+Index: linux-source-2.6.32/fs/ext4/inode.c
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/inode.c 2012-07-04 15:58:41.463819138 +0200
-++++ linux-source-2.6.32/fs/ext4/inode.c 2012-07-04 15:59:20.502717532 +0200
++--- linux-source-2.6.32.orig/fs/ext4/inode.c 2012-07-05 11:44:41.042715759 +0200
+++++ linux-source-2.6.32/fs/ext4/inode.c 2012-07-05 11:45:24.542716615 +0200
+@@ -4923,7 +4923,7 @@
+ if (EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_64BIT))
+ ei->i_file_acl |=
@@ -9078,8 +9074,8 @@ index 0000000..abb8a5e
+ ei->i_reserved_quota = 0;
+Index: linux-source-2.6.32/fs/ext4/Makefile
+===================================================================
-+--- linux-source-2.6.32.orig/fs/ext4/Makefile 2012-07-04 15:58:56.098722568 +0200
-++++ linux-source-2.6.32/fs/ext4/Makefile 2012-07-04 15:59:20.502717532 +0200
++--- linux-source-2.6.32.orig/fs/ext4/Makefile 2012-07-05 11:44:53.591707738 +0200
+++++ linux-source-2.6.32/fs/ext4/Makefile 2012-07-05 11:45:24.542716615 +0200
+@@ -7,7 +7,7 @@
+ 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 \
--
Lustre Debian Packaging
More information about the Pkg-lustre-svn-commit
mailing list