--- /dev/null
+--- linux-stage.orig/fs/ext4/super.c 2014-02-14 04:48:50.707992991 +0800
++++ linux-stage/fs/ext4/super.c 2014-02-14 04:49:53.341999568 +0800
+@@ -3456,24 +3456,6 @@ static int ext4_fill_super(struct super_
+ get_random_bytes(&sbi->s_next_generation, sizeof(u32));
+ spin_lock_init(&sbi->s_next_gen_lock);
+
+- err = percpu_counter_init(&sbi->s_freeblocks_counter,
+- ext4_count_free_blocks(sb));
+- if (!err) {
+- err = percpu_counter_init(&sbi->s_freeinodes_counter,
+- ext4_count_free_inodes(sb));
+- }
+- if (!err) {
+- err = percpu_counter_init(&sbi->s_dirs_counter,
+- ext4_count_dirs(sb));
+- }
+- if (!err) {
+- err = percpu_counter_init(&sbi->s_dirtyblocks_counter, 0);
+- }
+- if (err) {
+- ext4_msg(sb, KERN_ERR, "insufficient memory");
+- goto failed_mount3;
+- }
+-
+ sbi->s_stripe = ext4_get_stripe_size(sbi);
+ sbi->s_max_writeback_mb_bump = 128;
+
+@@ -3555,6 +3537,24 @@ static int ext4_fill_super(struct super_
+ goto no_journal;
+ }
+
++ err = percpu_counter_init(&sbi->s_freeblocks_counter,
++ ext4_count_free_blocks(sb));
++ if (!err) {
++ err = percpu_counter_init(&sbi->s_freeinodes_counter,
++ ext4_count_free_inodes(sb));
++ }
++ if (!err) {
++ err = percpu_counter_init(&sbi->s_dirs_counter,
++ ext4_count_dirs(sb));
++ }
++ if (!err) {
++ err = percpu_counter_init(&sbi->s_dirtyblocks_counter, 0);
++ }
++ if (err) {
++ ext4_msg(sb, KERN_ERR, "insufficient memory");
++ goto failed_mount4;
++ }
++
+ if (ext4_blocks_count(es) > 0xffffffffULL &&
+ !jbd2_journal_set_features(EXT4_SB(sb)->s_journal, 0, 0,
+ JBD2_FEATURE_INCOMPAT_64BIT)) {
--- /dev/null
+--- linux-stage.orig/fs/ext4/super.c
++++ linux-stage/fs/ext4/super.c
+@@ -3383,24 +3424,6 @@ static int ext4_fill_super(struct super_
+ get_random_bytes(&sbi->s_next_generation, sizeof(u32));
+ spin_lock_init(&sbi->s_next_gen_lock);
+
+- err = percpu_counter_init(&sbi->s_freeblocks_counter,
+- ext4_count_free_blocks(sb));
+- if (!err) {
+- err = percpu_counter_init(&sbi->s_freeinodes_counter,
+- ext4_count_free_inodes(sb));
+- }
+- if (!err) {
+- err = percpu_counter_init(&sbi->s_dirs_counter,
+- ext4_count_dirs(sb));
+- }
+- if (!err) {
+- err = percpu_counter_init(&sbi->s_dirtyblocks_counter, 0);
+- }
+- if (err) {
+- ext4_msg(sb, KERN_ERR, "insufficient memory");
+- goto failed_mount3;
+- }
+-
+ sbi->s_stripe = ext4_get_stripe_size(sbi);
+ sbi->s_max_writeback_mb_bump = 128;
+
+@@ -3482,6 +3505,24 @@ static int ext4_fill_super(struct super_
+ goto no_journal;
+ }
+
++ err = percpu_counter_init(&sbi->s_freeblocks_counter,
++ ext4_count_free_blocks(sb));
++ if (!err) {
++ err = percpu_counter_init(&sbi->s_freeinodes_counter,
++ ext4_count_free_inodes(sb));
++ }
++ if (!err) {
++ err = percpu_counter_init(&sbi->s_dirs_counter,
++ ext4_count_dirs(sb));
++ }
++ if (!err) {
++ err = percpu_counter_init(&sbi->s_dirtyblocks_counter, 0);
++ }
++ if (err) {
++ ext4_msg(sb, KERN_ERR, "insufficient memory");
++ goto failed_mount3;
++ }
++
+ if (ext4_blocks_count(es) > 0xffffffffULL &&
+ !jbd2_journal_set_features(EXT4_SB(sb)->s_journal, 0, 0,
+ JBD2_FEATURE_INCOMPAT_64BIT)) {
rhel6.4/ext4-max-dir-size-options.patch
rhel6.3/ext4-not-discard-preallocation-umount.patch
rhel6.3/ext4-journal-path-opt.patch
+rhel6.3/ext4-init-statfs-after-journal.patch
rhel6.4/ext4-max-dir-size-options.patch
rhel6.3/ext4-not-discard-preallocation-umount.patch
rhel6.3/ext4-journal-path-opt.patch
+rhel6.3/ext4-init-statfs-after-journal.patch
rhel6.3/ext4-max-dir-size-options.patch
rhel6.3/ext4-not-discard-preallocation-umount.patch
rhel6.3/ext4-journal-path-opt.patch
+rhel6.3/ext4-init-statfs-after-journal.patch
sles11sp1/ext4-max-dir-size-options.patch
rhel6.3/ext4-not-discard-preallocation-umount.patch
rhel6.3/ext4-journal-path-opt.patch
+rhel6.3/ext4-init-statfs-after-journal.patch
sles11sp2/ext4-max-dir-size-options.patch
rhel6.3/ext4-not-discard-preallocation-umount.patch
rhel6.3/ext4-journal-path-opt.patch
+sles11sp2/ext4-init-statfs-after-journal.patch