Whamcloud - gitweb
LU-351 RHEL6 U1 support.
authorAlexey Lyashkov <alexey_lyashkov@xyratex.com>
Fri, 3 Jun 2011 16:34:50 +0000 (20:34 +0400)
committerOleg Drokin <green@whamcloud.com>
Mon, 6 Jun 2011 22:40:18 +0000 (15:40 -0700)
that patch adds support for 2.6.32-131 kernel.

Change-Id: I5c0f72a4a84d120b1820a038be82dedf806e2da1
Signed-off-by: Alexey Lyashkov <alexey_lyashkov@xyratex.com>
Reviewed-on: http://review.whamcloud.com/584
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
build/autoconf/lustre-build-linux.m4
ldiskfs/kernel_patches/patches/ext4-extents-mount-option-rhel6.patch
ldiskfs/kernel_patches/patches/ext4-misc-rhel6.patch
ldiskfs/kernel_patches/series/ldiskfs-2.6-rhel6.series
libcfs/autoconf/lustre-libcfs.m4
libcfs/libcfs/linux/linux-debug.c
lustre/kernel_patches/patches/dev_read_only-2.6.32-rhel6.patch
lustre/kernel_patches/patches/raid5-mmp-unplug-dev-rhel6.patch
lustre/kernel_patches/targets/2.6-rhel6.target.in

index 0860b8b..deb80fd 100644 (file)
@@ -361,7 +361,9 @@ AC_SUBST(UML_CFLAGS)
 # LB_LANG_PROGRAM(C)([PROLOGUE], [BODY])
 # --------------------------------------
 m4_define([LB_LANG_PROGRAM],
-[$1
+[
+#include <linux/kernel.h>
+$1
 int
 main (void)
 {
index c4cc531..e944013 100644 (file)
@@ -1,8 +1,8 @@
 Index: linux-stage/fs/ext4/ext4.h
 ===================================================================
---- linux-stage.orig/fs/ext4/ext4.h    2011-03-14 15:57:13.613674482 +0800
-+++ linux-stage/fs/ext4/ext4.h 2011-03-14 15:57:22.031906980 +0800
-@@ -780,6 +780,7 @@
+--- linux-stage.orig/fs/ext4/ext4.h    2011-05-20 11:01:37.000000000 +0300
++++ linux-stage/fs/ext4/ext4.h 2011-05-20 11:01:44.000000000 +0300
+@@ -859,6 +859,7 @@ struct ext4_inode_info {
  #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 */
@@ -12,8 +12,8 @@ Index: linux-stage/fs/ext4/ext4.h
  #define EXT4_MOUNT_I_VERSION            0x2000000 /* i_version support */
 Index: linux-stage/fs/ext4/ext4_jbd2.h
 ===================================================================
---- linux-stage.orig/fs/ext4/ext4_jbd2.h       2011-03-14 15:57:12.000000000 +0800
-+++ linux-stage/fs/ext4/ext4_jbd2.h    2011-03-14 15:58:55.957499110 +0800
+--- linux-stage.orig/fs/ext4/ext4_jbd2.h       2011-05-20 11:00:01.000000000 +0300
++++ linux-stage/fs/ext4/ext4_jbd2.h    2011-05-20 11:01:44.000000000 +0300
 @@ -33,7 +33,7 @@
  
  #define EXT4_SINGLEDATA_TRANS_BLOCKS(sb)                              \
@@ -22,12 +22,12 @@ Index: linux-stage/fs/ext4/ext4_jbd2.h
 +       || test_opt(sb, EXTENTS) ? 27U : 8U)
  
  #define ext4_journal_dirty_metadata(handle, bh)  \
-                 ext4_handle_dirty_metadata(handle, NULL, bh)
+               ext4_handle_dirty_metadata(handle, NULL, bh)
 Index: linux-stage/fs/ext4/extents.c
 ===================================================================
---- linux-stage.orig/fs/ext4/extents.c 2011-03-14 15:57:12.000000000 +0800
-+++ linux-stage/fs/ext4/extents.c      2011-03-14 16:14:14.246265207 +0800
-@@ -2553,7 +2553,7 @@
+--- linux-stage.orig/fs/ext4/extents.c 2011-05-20 11:00:01.000000000 +0300
++++ linux-stage/fs/ext4/extents.c      2011-05-20 11:01:44.000000000 +0300
+@@ -2555,7 +2555,7 @@ void ext4_ext_init(struct super_block *s
         * possible initialization would be here
         */
  
@@ -36,7 +36,7 @@ Index: linux-stage/fs/ext4/extents.c
  #if defined(AGGRESSIVE_TEST) || defined(CHECK_BINSEARCH) || defined(EXTENTS_STATS)
                printk(KERN_INFO "EXT4-fs: file extents enabled");
  #ifdef AGGRESSIVE_TEST
-@@ -2580,7 +2580,7 @@
+@@ -2582,7 +2582,7 @@ void ext4_ext_init(struct super_block *s
   */
  void ext4_ext_release(struct super_block *sb)
  {
@@ -47,9 +47,9 @@ Index: linux-stage/fs/ext4/extents.c
  #ifdef EXTENTS_STATS
 Index: linux-stage/fs/ext4/ialloc.c
 ===================================================================
---- linux-stage.orig/fs/ext4/ialloc.c  2011-03-14 15:57:13.000000000 +0800
-+++ linux-stage/fs/ext4/ialloc.c       2011-03-14 16:02:03.334308846 +0800
-@@ -1049,7 +1049,7 @@
+--- linux-stage.orig/fs/ext4/ialloc.c  2011-05-20 11:01:36.000000000 +0300
++++ linux-stage/fs/ext4/ialloc.c       2011-05-20 11:01:44.000000000 +0300
+@@ -1049,7 +1049,7 @@ got:
        if (err)
                goto fail_free_drop;
  
@@ -57,12 +57,12 @@ Index: linux-stage/fs/ext4/ialloc.c
 +      if (test_opt(sb, EXTENTS)) {
                /* set extent flag only for directory, file and normal symlink*/
                if (S_ISDIR(mode) || S_ISREG(mode) || S_ISLNK(mode)) {
-                       EXT4_I(inode)->i_flags |= EXT4_EXTENTS_FL;
+                       ext4_set_inode_flag(inode, EXT4_INODE_EXTENTS);
 Index: linux-stage/fs/ext4/migrate.c
 ===================================================================
---- linux-stage.orig/fs/ext4/migrate.c 2011-03-14 15:36:15.000000000 +0800
-+++ linux-stage/fs/ext4/migrate.c      2011-03-14 16:05:39.083369164 +0800
-@@ -459,13 +459,13 @@
+--- linux-stage.orig/fs/ext4/migrate.c 2011-05-20 10:59:29.000000000 +0300
++++ linux-stage/fs/ext4/migrate.c      2011-05-20 11:03:22.000000000 +0300
+@@ -459,13 +459,10 @@ int ext4_ext_migrate(struct inode *inode
        unsigned long max_entries;
        __u32 goal;
  
@@ -72,22 +72,19 @@ Index: linux-stage/fs/ext4/migrate.c
 -       */
 -      if (!EXT4_HAS_INCOMPAT_FEATURE(inode->i_sb,
 -                                     EXT4_FEATURE_INCOMPAT_EXTENTS) ||
--          (EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL))
+-          (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)))
 +      if (!test_opt(inode->i_sb, EXTENTS))
 +              /*
 +               * if mounted with noextents we don't allow the migrate
 +               */
-+              return -EINVAL;
-+
-+      if ((EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL))
                return -EINVAL;
  
        if (S_ISLNK(inode->i_mode) && inode->i_blocks == 0)
 Index: linux-stage/fs/ext4/super.c
 ===================================================================
---- linux-stage.orig/fs/ext4/super.c   2011-03-14 15:57:18.000000000 +0800
-+++ linux-stage/fs/ext4/super.c        2011-03-14 16:11:58.234626200 +0800
-@@ -942,6 +942,8 @@
+--- linux-stage.orig/fs/ext4/super.c   2011-05-20 11:01:37.000000000 +0300
++++ linux-stage/fs/ext4/super.c        2011-05-20 11:01:44.000000000 +0300
+@@ -945,6 +945,8 @@ static int ext4_show_options(struct seq_
                seq_puts(seq, ",journal_async_commit");
        if (test_opt(sb, NOBH))
                seq_puts(seq, ",nobh");
@@ -96,7 +93,7 @@ Index: linux-stage/fs/ext4/super.c
        if (test_opt(sb, I_VERSION))
                seq_puts(seq, ",i_version");
        if (!test_opt(sb, DELALLOC))
-@@ -1500,6 +1502,7 @@
+@@ -1515,6 +1517,7 @@ enum {
        Opt_inode_readahead_blks, Opt_journal_ioprio,
        Opt_discard, Opt_nodiscard,
        Opt_mballoc, Opt_bigendian_extents, Opt_force_over_16tb,
@@ -104,7 +101,7 @@ Index: linux-stage/fs/ext4/super.c
  };
  
  static const match_table_t tokens = {
-@@ -1571,6 +1574,8 @@
+@@ -1589,6 +1592,8 @@ static const match_table_t tokens = {
        {Opt_mballoc, "mballoc"},
        {Opt_discard, "discard"},
        {Opt_nodiscard, "nodiscard"},
@@ -113,7 +110,7 @@ Index: linux-stage/fs/ext4/super.c
        {Opt_err, NULL},
  };
  
-@@ -1613,6 +1618,7 @@
+@@ -1631,6 +1636,7 @@ static int parse_options(char *options, 
        int qtype, qfmt;
        char *qname;
  #endif
@@ -121,7 +118,7 @@ Index: linux-stage/fs/ext4/super.c
  
        if (!options)
                return 1;
-@@ -2017,6 +2023,32 @@
+@@ -2039,6 +2045,32 @@ set_qf_format:
                case Opt_force_over_16tb:
                        force_over_16tb = 1;
                        break;
@@ -154,7 +151,7 @@ Index: linux-stage/fs/ext4/super.c
                default:
                        ext4_msg(sb, KERN_ERR,
                               "Unrecognized mount option \"%s\" "
-@@ -2879,6 +2911,17 @@
+@@ -2901,6 +2933,17 @@ static int ext4_fill_super(struct super_
        set_opt(sbi->s_mount_opt, BARRIER);
  
        /*
index 3ce5694..f25ba7e 100644 (file)
@@ -1,20 +1,31 @@
-Index: linux-stage/fs/ext4/ext4_jbd2.h
+Index: linux-stage/fs/ext4/ext4.h
 ===================================================================
---- linux-stage.orig/fs/ext4/ext4_jbd2.h
-+++ linux-stage/fs/ext4/ext4_jbd2.h
-@@ -35,6 +35,8 @@
-       (EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_EXTENTS)   \
-        ? 27U : 8U)
+--- linux-stage.orig/fs/ext4/ext4.h    2011-05-20 10:59:32.000000000 +0300
++++ linux-stage/fs/ext4/ext4.h 2011-05-20 11:01:06.000000000 +0300
+@@ -1191,6 +1191,9 @@ EXT4_INODE_BIT_FNS(state, state_flags)
  
-+#define ext4_journal_dirty_metadata(handle, bh)  \
-+              ext4_handle_dirty_metadata(handle, NULL, bh)
- /* Extended attribute operations touch at most two data buffers,
-  * two bitmap buffers, and two group summaries, in addition to the inode
-  * and the superblock, which are already accounted for. */
+ #define NEXT_ORPHAN(inode) EXT4_I(inode)->i_dtime
++/* Has been moved to linux/magic.h but we need it for Lustre */
++#define EXT4_SUPER_MAGIC      0xEF53
++
+ /*
+  * Codes for operating systems
+  */
+@@ -1630,6 +1633,9 @@ extern void ext4_mb_put_buddy_cache_lock
+                                               ext4_group_t, int);
+ extern int ext4_trim_fs(struct super_block *, struct fstrim_range *);
++extern void ext4_mb_discard_inode_preallocations(struct inode *);
++
++
+ /* inode.c */
+ int ext4_forget(handle_t *handle, int is_metadata, struct inode *inode,
+               struct buffer_head *bh, ext4_fsblk_t blocknr);
 Index: linux-stage/fs/ext4/ext4_extents.h
 ===================================================================
---- linux-stage.orig/fs/ext4/ext4_extents.h
-+++ linux-stage/fs/ext4/ext4_extents.h
+--- linux-stage.orig/fs/ext4/ext4_extents.h    2011-05-20 10:59:30.000000000 +0300
++++ linux-stage/fs/ext4/ext4_extents.h 2011-05-20 11:00:01.000000000 +0300
 @@ -58,6 +58,12 @@
   */
  #define EXT_STATS_
@@ -45,93 +56,10 @@ Index: linux-stage/fs/ext4/ext4_extents.h
  extern int ext4_can_extents_be_merged(struct inode *inode,
                                      struct ext4_extent *ex1,
                                      struct ext4_extent *ex2);
-Index: linux-stage/fs/ext4/mballoc.c
-===================================================================
---- linux-stage.orig/fs/ext4/mballoc.c
-+++ linux-stage/fs/ext4/mballoc.c
-@@ -4039,6 +4039,7 @@ repeat:
-       if (ac)
-               kmem_cache_free(ext4_ac_cachep, ac);
- }
-+EXPORT_SYMBOL(ext4_discard_preallocations);
- /*
-  * finds all preallocated spaces and return blocks being freed to them
-@@ -4831,3 +4832,6 @@ error_return:
-               kmem_cache_free(ext4_ac_cachep, ac);
-       return;
- }
-+
-+EXPORT_SYMBOL(ext4_free_blocks);
-+
-Index: linux-stage/fs/ext4/super.c
-===================================================================
---- linux-stage.orig/fs/ext4/super.c
-+++ linux-stage/fs/ext4/super.c
-@@ -127,6 +127,7 @@ __u32 ext4_itable_unused_count(struct su
-               (EXT4_DESC_SIZE(sb) >= EXT4_MIN_DESC_SIZE_64BIT ?
-                (__u32)le16_to_cpu(bg->bg_itable_unused_hi) << 16 : 0);
- }
-+EXPORT_SYMBOL(ext4_itable_unused_count);
- void ext4_block_bitmap_set(struct super_block *sb,
-                          struct ext4_group_desc *bg, ext4_fsblk_t blk)
-@@ -1497,11 +1498,13 @@ enum {
-       Opt_usrjquota, Opt_grpjquota, Opt_offusrjquota, Opt_offgrpjquota,
-       Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_jqfmt_vfsv1, Opt_quota,
-       Opt_noquota, Opt_ignore, Opt_barrier, Opt_nobarrier, Opt_err,
-+      Opt_iopen, Opt_noiopen, Opt_iopen_nopriv,
-       Opt_resize, Opt_usrquota, Opt_grpquota, Opt_i_version,
-       Opt_stripe, Opt_delalloc, Opt_nodelalloc,
-       Opt_block_validity, Opt_noblock_validity,
-       Opt_inode_readahead_blks, Opt_journal_ioprio,
-       Opt_discard, Opt_nodiscard,
-+      Opt_mballoc,
- };
- static const match_table_t tokens = {
-@@ -1553,6 +1556,9 @@ static const match_table_t tokens = {
-       {Opt_noquota, "noquota"},
-       {Opt_quota, "quota"},
-       {Opt_usrquota, "usrquota"},
-+      {Opt_iopen, "iopen"},
-+      {Opt_noiopen, "noiopen"},
-+      {Opt_iopen_nopriv, "iopen_nopriv"},
-       {Opt_barrier, "barrier=%u"},
-       {Opt_barrier, "barrier"},
-       {Opt_nobarrier, "nobarrier"},
-@@ -1568,6 +1574,7 @@ static const match_table_t tokens = {
-       {Opt_auto_da_alloc, "auto_da_alloc=%u"},
-       {Opt_auto_da_alloc, "auto_da_alloc"},
-       {Opt_noauto_da_alloc, "noauto_da_alloc"},
-+      {Opt_mballoc, "mballoc"},
-       {Opt_discard, "discard"},
-       {Opt_nodiscard, "nodiscard"},
-       {Opt_err, NULL},
-@@ -1925,6 +1932,10 @@ set_qf_format:
-                       else
-                               clear_opt(sbi->s_mount_opt, BARRIER);
-                       break;
-+              case Opt_iopen:
-+              case Opt_noiopen:
-+              case Opt_iopen_nopriv:
-+                      break;
-               case Opt_ignore:
-                       break;
-               case Opt_resize:
-@@ -2008,6 +2019,8 @@ set_qf_format:
-               case Opt_nodiscard:
-                       clear_opt(sbi->s_mount_opt, DISCARD);
-                       break;
-+              case Opt_mballoc:
-+                      break;
-               default:
-                       ext4_msg(sb, KERN_ERR,
-                              "Unrecognized mount option \"%s\" "
 Index: linux-stage/fs/ext4/ext4_jbd2.c
 ===================================================================
---- linux-stage.orig/fs/ext4/ext4_jbd2.c
-+++ linux-stage/fs/ext4/ext4_jbd2.c
+--- linux-stage.orig/fs/ext4/ext4_jbd2.c       2011-05-20 10:59:29.000000000 +0300
++++ linux-stage/fs/ext4/ext4_jbd2.c    2011-05-20 11:00:01.000000000 +0300
 @@ -31,6 +31,7 @@ int __ext4_journal_get_write_access(cons
        }
        return err;
@@ -145,41 +73,19 @@ Index: linux-stage/fs/ext4/ext4_jbd2.c
        return err;
  }
 +EXPORT_SYMBOL(__ext4_handle_dirty_metadata);
-Index: linux-stage/fs/ext4/ext4.h
-===================================================================
---- linux-stage.orig/fs/ext4/ext4.h
-+++ linux-stage/fs/ext4/ext4.h
-@@ -1110,6 +1110,9 @@ static inline void ext4_clear_inode_stat
- #define NEXT_ORPHAN(inode) EXT4_I(inode)->i_dtime
-+/* Has been moved to linux/magic.h but we need it for Lustre */
-+#define EXT4_SUPER_MAGIC      0xEF53
-+
- /*
-  * Codes for operating systems
-  */
-@@ -1539,6 +1542,8 @@ extern int ext4_mb_add_groupinfo(struct 
- extern int ext4_mb_get_buddy_cache_lock(struct super_block *, ext4_group_t);
- extern void ext4_mb_put_buddy_cache_lock(struct super_block *,
-                                               ext4_group_t, int);
-+extern void ext4_mb_discard_inode_preallocations(struct inode *);
-+
- /* inode.c */
- int ext4_forget(handle_t *handle, int is_metadata, struct inode *inode,
-               struct buffer_head *bh, ext4_fsblk_t blocknr);
-Index: linux-stage/fs/ext4/inode.c
+Index: linux-stage/fs/ext4/ext4_jbd2.h
 ===================================================================
---- linux-stage.orig/fs/ext4/inode.c
-+++ linux-stage/fs/ext4/inode.c
-@@ -5204,6 +5204,7 @@ bad_inode:
-       iget_failed(inode);
-       return ERR_PTR(ret);
- }
-+EXPORT_SYMBOL(ext4_iget);
+--- linux-stage.orig/fs/ext4/ext4_jbd2.h       2011-05-20 10:59:29.000000000 +0300
++++ linux-stage/fs/ext4/ext4_jbd2.h    2011-05-20 11:00:01.000000000 +0300
+@@ -35,6 +35,8 @@
+       (EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_EXTENTS)   \
+        ? 27U : 8U)
  
- static int ext4_inode_blocks_set(handle_t *handle,
-                               struct ext4_inode *raw_inode,
++#define ext4_journal_dirty_metadata(handle, bh)  \
++              ext4_handle_dirty_metadata(handle, NULL, bh)
+ /* Extended attribute operations touch at most two data buffers,
+  * two bitmap buffers, and two group summaries, in addition to the inode
+  * and the superblock, which are already accounted for. */
 Index: linux-stage/fs/ext4/extents.c
 ===================================================================
 --- linux-stage.orig/fs/ext4/extents.c
@@ -240,7 +146,7 @@ Index: linux-stage/fs/ext4/extents.c
   * How many index/leaf blocks need to change/allocate to modify nrblocks?
   *
   * if nrblocks are fit in a single extent (chunk flag is 1), then
-@@ -3941,3 +3990,14 @@ int ext4_fiemap(struct inode *inode, str
+@@ -4029,3 +4079,14 @@ int ext4_fiemap(struct inode *inode, str
        return error;
  }
  
@@ -255,3 +161,99 @@ Index: linux-stage/fs/ext4/extents.c
 +EXPORT_SYMBOL(ext4_ext_walk_space);
 +EXPORT_SYMBOL(ext4_ext_find_extent);
 +EXPORT_SYMBOL(ext4_ext_drop_refs);
++
+Index: linux-stage/fs/ext4/inode.c
+===================================================================
+--- linux-stage.orig/fs/ext4/inode.c   2011-05-20 10:59:31.000000000 +0300
++++ linux-stage/fs/ext4/inode.c        2011-05-20 11:00:01.000000000 +0300
+@@ -5249,6 +5249,7 @@ bad_inode:
+       iget_failed(inode);
+       return ERR_PTR(ret);
+ }
++EXPORT_SYMBOL(ext4_iget);
+ static int ext4_inode_blocks_set(handle_t *handle,
+                               struct ext4_inode *raw_inode,
+Index: linux-stage/fs/ext4/mballoc.c
+===================================================================
+--- linux-stage.orig/fs/ext4/mballoc.c 2011-05-20 10:59:32.000000000 +0300
++++ linux-stage/fs/ext4/mballoc.c      2011-05-20 11:00:01.000000000 +0300
+@@ -4044,6 +4044,7 @@ repeat:
+       if (ac)
+               kmem_cache_free(ext4_ac_cachep, ac);
+ }
++EXPORT_SYMBOL(ext4_discard_preallocations);
+ /*
+  * finds all preallocated spaces and return blocks being freed to them
+@@ -5029,3 +5030,6 @@ int ext4_trim_fs(struct super_block *sb,
+       return ret;
+ }
++
++EXPORT_SYMBOL(ext4_free_blocks);
++
+Index: linux-stage/fs/ext4/super.c
+===================================================================
+--- linux-stage.orig/fs/ext4/super.c   2011-05-20 10:59:31.000000000 +0300
++++ linux-stage/fs/ext4/super.c        2011-05-20 11:00:01.000000000 +0300
+@@ -128,6 +128,7 @@ __u32 ext4_itable_unused_count(struct su
+               (EXT4_DESC_SIZE(sb) >= EXT4_MIN_DESC_SIZE_64BIT ?
+                (__u32)le16_to_cpu(bg->bg_itable_unused_hi) << 16 : 0);
+ }
++EXPORT_SYMBOL(ext4_itable_unused_count);
+ void ext4_block_bitmap_set(struct super_block *sb,
+                          struct ext4_group_desc *bg, ext4_fsblk_t blk)
+@@ -1500,11 +1501,13 @@ enum {
+       Opt_usrjquota, Opt_grpjquota, Opt_offusrjquota, Opt_offgrpjquota,
+       Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_jqfmt_vfsv1, Opt_quota,
+       Opt_noquota, Opt_ignore, Opt_barrier, Opt_nobarrier, Opt_err,
++      Opt_iopen, Opt_noiopen, Opt_iopen_nopriv,
+       Opt_resize, Opt_usrquota, Opt_grpquota, Opt_i_version,
+       Opt_stripe, Opt_delalloc, Opt_nodelalloc,
+       Opt_block_validity, Opt_noblock_validity,
+       Opt_inode_readahead_blks, Opt_journal_ioprio,
+       Opt_discard, Opt_nodiscard,
++      Opt_mballoc,
+ };
+ static const match_table_t tokens = {
+@@ -1556,6 +1559,9 @@ static const match_table_t tokens = {
+       {Opt_noquota, "noquota"},
+       {Opt_quota, "quota"},
+       {Opt_usrquota, "usrquota"},
++      {Opt_iopen, "iopen"},
++      {Opt_noiopen, "noiopen"},
++      {Opt_iopen_nopriv, "iopen_nopriv"},
+       {Opt_barrier, "barrier=%u"},
+       {Opt_barrier, "barrier"},
+       {Opt_nobarrier, "nobarrier"},
+@@ -1571,6 +1577,7 @@ static const match_table_t tokens = {
+       {Opt_auto_da_alloc, "auto_da_alloc=%u"},
+       {Opt_auto_da_alloc, "auto_da_alloc"},
+       {Opt_noauto_da_alloc, "noauto_da_alloc"},
++      {Opt_mballoc, "mballoc"},
+       {Opt_discard, "discard"},
+       {Opt_nodiscard, "nodiscard"},
+       {Opt_err, NULL},
+@@ -1928,6 +1935,10 @@ set_qf_format:
+                       else
+                               clear_opt(sbi->s_mount_opt, BARRIER);
+                       break;
++              case Opt_iopen:
++              case Opt_noiopen:
++              case Opt_iopen_nopriv:
++                      break;
+               case Opt_ignore:
+                       break;
+               case Opt_resize:
+@@ -2011,6 +2022,8 @@ set_qf_format:
+               case Opt_nodiscard:
+                       clear_opt(sbi->s_mount_opt, DISCARD);
+                       break;
++              case Opt_mballoc:
++                      break;
+               default:
+                       ext4_msg(sb, KERN_ERR,
+                              "Unrecognized mount option \"%s\" "
index eda1320..2c73ff1 100644 (file)
@@ -11,7 +11,7 @@ ext4-print-inum-in-htree-warning-rhel6.patch
 ext4-xattr-no-update-ctime-rhel5.patch
 ext4-prealloc-rhel6.patch
 ext4-mballoc-extra-checks-rhel6.patch
-ext4-misc-rhel6.patch
+ext4-misc-rhel6.patch 
 ext4-big-endian-check-2.6-rhel6.patch
 ext4-alloc-policy-2.6-rhel5.patch
 ext4-force_over_16tb-rhel6.patch
index af8418a..0e9779f 100644 (file)
@@ -486,7 +486,6 @@ AC_DEFUN([LIBCFS_FUNC_DUMP_TRACE],
                #include <asm/stacktrace.h>
        ],[
                struct stacktrace_ops ops;
-
                ops.address = print_addr;
        ],[
                AC_MSG_RESULT(yes)
@@ -496,6 +495,22 @@ AC_DEFUN([LIBCFS_FUNC_DUMP_TRACE],
                AC_MSG_RESULT(no)
        ],[
        ])
+       AC_MSG_CHECKING([dump_trace want address])
+       LB_LINUX_TRY_COMPILE([
+               struct task_struct;
+               struct pt_regs;
+               #include <asm/stacktrace.h>
+       ],[
+               dump_trace(NULL, NULL, NULL, 0, NULL, NULL);
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_DUMP_TRACE_ADDRESS, 1,
+                         [dump_trace want address argument])
+       ],[
+               AC_MSG_RESULT(no)
+       ],[
+       ])
+
 EXTRA_KCFLAGS="$tmp_flags"
 ])
 ])
index 363ec8c..7b2d3a9 100644 (file)
@@ -271,9 +271,9 @@ void libcfs_debug_dumpstack(struct task_struct *tsk)
         /* show_trace_log_lvl() */
        printk("\nCall Trace:\n");
        dump_trace(tsk, NULL, NULL,
-#ifdef HAVE_TRACE_ADDRESS_RELIABLE
+#ifdef HAVE_DUMP_TRACE_ADDRESS
                    0,
-#endif /* HAVE_TRACE_ADDRESS_RELIABLE */
+#endif /* HAVE_DUMP_TRACE_ADDRESS */
                    &print_trace_ops, NULL);
        printk("\n");
 #elif defined(HAVE_SHOW_TASK)
index 0933881..71e6359 100644 (file)
@@ -17,11 +17,11 @@ checksum does not match that expected by the block pointer.
 Initial efforts to remove this patch are under way in bug 20776.
 Once this work comes to fruition this patch can be dropped.
 
-Index: linux-2.6.32-71.18.1.el6-master/block/blk-core.c
+Index: linux-2.6.32-131.0.15.el6.x86_64/block/blk-core.c
 ===================================================================
---- linux-2.6.32-71.18.1.el6-master.orig/block/blk-core.c      2011-03-05 11:35:40.404043293 +0800
-+++ linux-2.6.32-71.18.1.el6-master/block/blk-core.c   2011-03-11 20:21:10.492302510 +0800
-@@ -1405,6 +1405,8 @@
+--- linux-2.6.32-131.0.15.el6.x86_64.orig/block/blk-core.c     2011-05-10 21:38:33.000000000 +0300
++++ linux-2.6.32-131.0.15.el6.x86_64/block/blk-core.c  2011-05-19 21:01:04.000000000 +0300
+@@ -1416,6 +1416,8 @@ static inline int should_fail_request(st
  
  #endif /* CONFIG_FAIL_MAKE_REQUEST */
  
@@ -30,7 +30,7 @@ Index: linux-2.6.32-71.18.1.el6-master/block/blk-core.c
  /*
   * Check whether this bio extends beyond the end of the device.
   */
-@@ -1506,6 +1508,23 @@
+@@ -1517,6 +1519,23 @@ static inline void __generic_make_reques
                if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags)))
                        goto end_io;
  
@@ -54,7 +54,7 @@ Index: linux-2.6.32-71.18.1.el6-master/block/blk-core.c
                if (should_fail_request(bio))
                        goto end_io;
  
-@@ -2578,6 +2586,99 @@
+@@ -2628,6 +2647,99 @@ int kblockd_schedule_work(struct request
  }
  EXPORT_SYMBOL(kblockd_schedule_work);
  
@@ -154,11 +154,11 @@ Index: linux-2.6.32-71.18.1.el6-master/block/blk-core.c
  int __init blk_dev_init(void)
  {
        BUILD_BUG_ON(__REQ_NR_BITS > 8 *
-Index: linux-2.6.32-71.18.1.el6-master/fs/block_dev.c
+Index: linux-2.6.32-131.0.15.el6.x86_64/fs/block_dev.c
 ===================================================================
---- linux-2.6.32-71.18.1.el6-master.orig/fs/block_dev.c        2011-03-05 11:35:40.486042782 +0800
-+++ linux-2.6.32-71.18.1.el6-master/fs/block_dev.c     2011-03-05 11:37:35.624324775 +0800
-@@ -1389,6 +1389,7 @@
+--- linux-2.6.32-131.0.15.el6.x86_64.orig/fs/block_dev.c       2011-05-10 21:38:29.000000000 +0300
++++ linux-2.6.32-131.0.15.el6.x86_64/fs/block_dev.c    2011-05-19 21:01:04.000000000 +0300
+@@ -1389,6 +1389,7 @@ static int __blkdev_put(struct block_dev
                if (bdev != bdev->bd_contains)
                        victim = bdev->bd_contains;
                bdev->bd_contains = NULL;
@@ -166,11 +166,23 @@ Index: linux-2.6.32-71.18.1.el6-master/fs/block_dev.c
        }
        unlock_kernel();
        mutex_unlock(&bdev->bd_mutex);
-Index: linux-2.6.32-71.18.1.el6-master/include/linux/fs.h
+Index: linux-2.6.32-131.0.15.el6.x86_64/include/linux/blk_types.h
 ===================================================================
---- linux-2.6.32-71.18.1.el6-master.orig/include/linux/fs.h    2011-03-05 11:35:40.445043037 +0800
-+++ linux-2.6.32-71.18.1.el6-master/include/linux/fs.h 2011-03-05 11:37:35.726324137 +0800
-@@ -2204,6 +2204,10 @@
+--- linux-2.6.32-131.0.15.el6.x86_64.orig/include/linux/blk_types.h    2011-05-10 21:37:58.000000000 +0300
++++ linux-2.6.32-131.0.15.el6.x86_64/include/linux/blk_types.h 2011-05-19 21:03:42.000000000 +0300
+@@ -24,6 +24,7 @@
+ #define BIO_NULL_MAPPED 9     /* contains invalid user pages */
+ #define BIO_FS_INTEGRITY 10   /* fs owns integrity data, not block layer */
+ #define BIO_QUIET     11      /* Make BIO Quiet */
++#define BIO_RDONLY    31      /* device is readonly */
+ #define bio_flagged(bio, flag)        ((bio)->bi_flags & (1 << (flag)))
+ /*
+Index: linux-2.6.32-131.0.15.el6.x86_64/include/linux/fs.h
+===================================================================
+--- linux-2.6.32-131.0.15.el6.x86_64.orig/include/linux/fs.h   2011-05-10 21:38:29.000000000 +0300
++++ linux-2.6.32-131.0.15.el6.x86_64/include/linux/fs.h        2011-05-19 21:01:04.000000000 +0300
+@@ -2244,6 +2244,10 @@ struct bio;
  extern void submit_bio(int, struct bio *);
  extern int bdev_read_only(struct block_device *);
  #endif
@@ -181,15 +193,3 @@ Index: linux-2.6.32-71.18.1.el6-master/include/linux/fs.h
  extern int set_blocksize(struct block_device *, int);
  extern int sb_set_blocksize(struct super_block *, int);
  extern int sb_min_blocksize(struct super_block *, int);
-Index: linux+rh+chaos/include/linux/bio.h
-===================================================================
---- linux+rh+chaos.orig/include/linux/bio.h
-+++ linux+rh+chaos/include/linux/bio.h
-@@ -126,6 +126,7 @@ struct bio {
- #define BIO_NULL_MAPPED 9     /* contains invalid user pages */
- #define BIO_FS_INTEGRITY 10   /* fs owns integrity data, not block layer */
- #define BIO_QUIET     11      /* Make BIO Quiet */
-+#define BIO_RDONLY    31      /* device is readonly */
- #define bio_flagged(bio, flag)        ((bio)->bi_flags & (1 << (flag)))
- /*
index 74bd529..891411a 100644 (file)
@@ -3,11 +3,11 @@ instead of handling from cache.  This is needed for MMP
 on MD RAID devices, and in theory could be accepted in
 the upstream kernel.  Not needed for DMU.
 
-Index: linux-2.6.32-71.18.1.el6-master/drivers/md/raid5.c
+Index: linux-2.6.32-131.0.15.el6.x86_64/drivers/md/raid5.c
 ===================================================================
---- linux-2.6.32-71.18.1.el6-master.orig/drivers/md/raid5.c    2011-02-28 16:57:31.222666050 +0800
-+++ linux-2.6.32-71.18.1.el6-master/drivers/md/raid5.c 2011-02-28 16:58:27.011983275 +0800
-@@ -2098,6 +2098,8 @@
+--- linux-2.6.32-131.0.15.el6.x86_64.orig/drivers/md/raid5.c   2011-05-10 21:38:35.000000000 +0300
++++ linux-2.6.32-131.0.15.el6.x86_64/drivers/md/raid5.c        2011-05-20 08:26:04.000000000 +0300
+@@ -2177,6 +2177,8 @@ static int add_stripe_bio(struct stripe_
                bi->bi_next = *bip;
        *bip = bi;
        bi->bi_phys_segments++;
@@ -16,12 +16,13 @@ Index: linux-2.6.32-71.18.1.el6-master/drivers/md/raid5.c
        spin_unlock_irq(&conf->device_lock);
        spin_unlock(&sh->lock);
  
-@@ -4031,6 +4033,8 @@
-               wait_event(mddev->thread->wqueue,
-                          atomic_read(&conf->preread_active_stripes) == 0);
+@@ -4132,6 +4134,9 @@ static int make_request(mddev_t *mddev, 
+               bio_endio(bi, 0);
        }
 +      if (bio_rw_flagged(bi, BIO_RW_SYNCIO))
-+              raid5_unplug_device(mddev->queue);
++              md_raid5_unplug_device(conf);
++
        return 0;
  }
  
index 9684ed9..712f4c6 100644 (file)
@@ -1,5 +1,5 @@
 lnxmaj="2.6.32"
-lnxrel="71.18.2.el6"
+lnxrel="131.0.15.el6"
 
 KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm
 SERIES=2.6-rhel6.series