Whamcloud - gitweb
LU-4287 kernel: kernel update RHEL6.5 [2.6.32-431.3.1.el6] 49/8549/25
authoryangsheng <yang.sheng@intel.com>
Wed, 8 Jan 2014 16:03:17 +0000 (00:03 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Mon, 10 Feb 2014 15:36:36 +0000 (15:36 +0000)
Add RHEL6.5 support [2.6.32-431.3.1.el6]

ext4 in RHEL6.5's kernel version 2.6.32-431.3.1.el6 no longer contains
the required function ext4_ext_walk_space(). We start a new rhel6.5
ldiskfs patch series and reintroduce ext4_ext_walk_space() through an
new patch, copying ext4_ext_walk_space() from older kernel rhel6.4
2.6.32-358.23.2.el6.

Signed-off-by: Bob Glossman <bob.glossman@intel.com>
Signed-off-by: yang sheng <yang.sheng@intel.com>
Change-Id: I7112747970343b1264910aa21d7a62c45b5ca1ea
Reviewed-on: http://review.whamcloud.com/8549
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Johann Lombardi <johann.lombardi@intel.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
14 files changed:
config/lustre-build-ldiskfs.m4
ldiskfs/kernel_patches/patches/rhel6.5/ext4-ext-walk-space.patch [new file with mode: 0644]
ldiskfs/kernel_patches/patches/rhel6.5/ext4-quota-first-class.patch [new file with mode: 0644]
ldiskfs/kernel_patches/series/ldiskfs-2.6-rhel6.5.series [new file with mode: 0644]
lnet/autoconf/lustre-lnet.m4
lustre/ChangeLog
lustre/kernel_patches/kernel_configs/kernel-2.6.32-2.6-rhel6-i686.config
lustre/kernel_patches/kernel_configs/kernel-2.6.32-2.6-rhel6-x86_64.config
lustre/kernel_patches/patches/raid5-mmp-unplug-dev-rhel6.patch
lustre/kernel_patches/patches/vfs_linkat_leakfix.patch [new file with mode: 0644]
lustre/kernel_patches/series/2.6-rhel6.series
lustre/kernel_patches/targets/2.6-rhel6.target.in
lustre/kernel_patches/which_patch
lustre/tests/sanity.sh

index 4b15de3..f50373c 100644 (file)
@@ -5,10 +5,12 @@ AC_MSG_CHECKING([which ldiskfs series to use])
 
 SER=
 AS_IF([test x$RHEL_KERNEL = xyes], [
+       AS_VERSION_COMPARE([$RHEL_KERNEL_VERSION],[2.6.32-431],[
        AS_VERSION_COMPARE([$RHEL_KERNEL_VERSION],[2.6.32-343],[
        AS_VERSION_COMPARE([$RHEL_KERNEL_VERSION],[2.6.32],[],
        [SER="2.6-rhel6.series"],[SER="2.6-rhel6.series"])],
-       [SER="2.6-rhel6.4.series"],[SER="2.6-rhel6.4.series"])
+       [SER="2.6-rhel6.4.series"],[SER="2.6-rhel6.4.series"])],
+       [SER="2.6-rhel6.5.series"],[SER="2.6-rhel6.5.series"])
 ], [test x$SUSE_KERNEL = xyes], [
        AS_VERSION_COMPARE([$LINUXRELEASE],[3.0.0],[
        AS_VERSION_COMPARE([$LINUXRELEASE],[2.6.32],[],
diff --git a/ldiskfs/kernel_patches/patches/rhel6.5/ext4-ext-walk-space.patch b/ldiskfs/kernel_patches/patches/rhel6.5/ext4-ext-walk-space.patch
new file mode 100644 (file)
index 0000000..714de7b
--- /dev/null
@@ -0,0 +1,163 @@
+Restore ext4_ext_walk_space().
+Copy from rhel6.4 [2.6.32-358.23.2.el6] kernel.
+
+Index: linux-2.6.32-431.3.1.el6.x86_64/fs/ext4/extents.c
+===================================================================
+--- linux-2.6.32-431.3.1.el6.x86_64.orig/fs/ext4/extents.c
++++ linux-2.6.32-431.3.1.el6.x86_64/fs/ext4/extents.c
+@@ -4487,6 +4487,121 @@ static int ext4_xattr_fiemap(struct inod
+       return (error < 0 ? error : 0);
+ }
++int ext4_ext_walk_space(struct inode *inode, ext4_lblk_t block,
++                      ext4_lblk_t num, ext_prepare_callback func,
++                      void *cbdata)
++{
++      struct ext4_ext_path *path = NULL;
++      struct ext4_ext_cache cbex;
++      struct ext4_extent *ex;
++      ext4_lblk_t next, start = 0, end = 0;
++      ext4_lblk_t last = block + num;
++      int depth, exists, err = 0;
++
++      BUG_ON(func == NULL);
++      BUG_ON(inode == NULL);
++
++      while (block < last && block != EXT_MAX_BLOCKS) {
++              num = last - block;
++              /* find extent for this block */
++              down_read(&EXT4_I(inode)->i_data_sem);
++              path = ext4_ext_find_extent(inode, block, path);
++              up_read(&EXT4_I(inode)->i_data_sem);
++              if (IS_ERR(path)) {
++                      err = PTR_ERR(path);
++                      path = NULL;
++                      break;
++              }
++
++              depth = ext_depth(inode);
++              if (unlikely(path[depth].p_hdr == NULL)) {
++                      EXT4_ERROR_INODE(inode, "path[%d].p_hdr == NULL", depth);
++                      err = -EIO;
++                      break;
++              }
++              ex = path[depth].p_ext;
++              next = ext4_ext_next_allocated_block(path);
++
++              exists = 0;
++              if (!ex) {
++                      /* there is no extent yet, so try to allocate
++                       * all requested space */
++                      start = block;
++                      end = block + num;
++              } else if (le32_to_cpu(ex->ee_block) > block) {
++                      /* need to allocate space before found extent */
++                      start = block;
++                      end = le32_to_cpu(ex->ee_block);
++                      if (block + num < end)
++                              end = block + num;
++              } else if (block >= le32_to_cpu(ex->ee_block)
++                                      + ext4_ext_get_actual_len(ex)) {
++                      /* need to allocate space after found extent */
++                      start = block;
++                      end = block + num;
++                      if (end >= next)
++                              end = next;
++              } else if (block >= le32_to_cpu(ex->ee_block)) {
++                      /*
++                       * some part of requested space is covered
++                       * by found extent
++                       */
++                      start = block;
++                      end = le32_to_cpu(ex->ee_block)
++                              + ext4_ext_get_actual_len(ex);
++                      if (block + num < end)
++                              end = block + num;
++                      exists = 1;
++              } else {
++                      BUG();
++              }
++              BUG_ON(end <= start);
++
++              if (!exists) {
++                      cbex.ec_block = start;
++                      cbex.ec_len = end - start;
++                      cbex.ec_start = 0;
++              } else {
++                      cbex.ec_block = le32_to_cpu(ex->ee_block);
++                      cbex.ec_len = ext4_ext_get_actual_len(ex);
++                      cbex.ec_start = ext4_ext_pblock(ex);
++              }
++
++              if (unlikely(cbex.ec_len == 0)) {
++                      EXT4_ERROR_INODE(inode, "cbex.ec_len == 0");
++                      err = -EIO;
++                      break;
++              }
++              err = func(inode, path, &cbex, ex, cbdata);
++              ext4_ext_drop_refs(path);
++
++              if (err < 0)
++                      break;
++
++              if (err == EXT_REPEAT)
++                      continue;
++              else if (err == EXT_BREAK) {
++                      err = 0;
++                      break;
++              }
++
++              if (ext_depth(inode) != depth) {
++                      /* depth was changed. we have to realloc path */
++                      kfree(path);
++                      path = NULL;
++              }
++
++              block = cbex.ec_block + cbex.ec_len;
++      }
++
++      if (path) {
++              ext4_ext_drop_refs(path);
++              kfree(path);
++      }
++
++      return err;
++}
++
+ /*
+  * ext4_ext_punch_hole
+  *
+Index: linux-2.6.32-431.3.1.el6.x86_64/fs/ext4/ext4_extents.h
+===================================================================
+--- linux-2.6.32-431.3.1.el6.x86_64.orig/fs/ext4/ext4_extents.h
++++ linux-2.6.32-431.3.1.el6.x86_64/fs/ext4/ext4_extents.h
+@@ -120,6 +120,19 @@ struct ext4_ext_path {
+       struct ext4_extent_header       *p_hdr;
+       struct buffer_head              *p_bh;
+ };
++/*
++ * to be called by ext4_ext_walk_space()
++ * negative retcode - error
++ * positive retcode - signal for ext4_ext_walk_space(), see below
++ * callback must return valid extent (passed or newly created)
++ */
++typedef int (*ext_prepare_callback)(struct inode *, struct ext4_ext_path *,
++                                      struct ext4_ext_cache *,
++                                      struct ext4_extent *, void *);
++
++#define EXT_CONTINUE   0
++#define EXT_BREAK      1
++#define EXT_REPEAT     2
+ /*
+  * structure for external API
+@@ -272,6 +285,9 @@ static inline void ext4_idx_store_pblock
+       ix->ei_leaf_hi = cpu_to_le16((unsigned long) ((pb >> 31) >> 1) &
+                                    0xffff);
+ }
++extern int ext4_ext_walk_space(struct inode *, ext4_lblk_t,
++                      ext4_lblk_t, ext_prepare_callback,
++                      void *);
+ extern int ext4_ext_calc_metadata_amount(struct inode *inode,
+                                        sector_t lblocks);
diff --git a/ldiskfs/kernel_patches/patches/rhel6.5/ext4-quota-first-class.patch b/ldiskfs/kernel_patches/patches/rhel6.5/ext4-quota-first-class.patch
new file mode 100644 (file)
index 0000000..b7c2a0b
--- /dev/null
@@ -0,0 +1,399 @@
+From: Aditya Kali <adityakali@google.com>
+
+This patch is an attempt towards supporting quotas as first class
+feature in ext4. It is based on the proposal at:
+https://ext4.wiki.kernel.org/index.php/Design_For_1st_Class_Quota_in_Ext4
+This patch introduces a new feature - EXT4_FEATURE_RO_COMPAT_QUOTA which, when
+turned on, enables quota accounting at mount time iteself. Also, the
+quota inodes are stored in two additional superblock fields.
+Some changes introduced by this patch that should be pointed out are:
+1) Two new ext4-superblock fields - s_usr_quota_inum and s_grp_quota_inum
+   for storing the quota inodes in use.
+2) If the QUOTA feature and corresponding quota inodes are set in superblock,
+   Quotas are turned on at mount time irrespective of the quota mount options.
+   Thus the mount options 'quota', 'usrquota' and 'grpquota' are completely
+   ignored with the new QUOTA feature flag.
+3) Default quota inodes are: inode#3 for tracking userquota and inode#4 for
+   tracking group quota. The superblock fields can be set to use other inodes
+   as well.
+4) mke2fs or tune2fs will initialize these inodes when quota feature is
+   being set. The default reserved inodes will not be visible to user as
+   regular files.
+5) Once quotas are turned on, they cannot be turned off while the FS is
+   mounted. This is because we do not want to let the quota get inconsistent.
+6) With the QUOTA feature set, since the quota inodes are hidden, some of the
+   utilities from quota-tools will no longer work correctly. Instead, e2fsprogs
+   will include support for fixing the quota files.
+7) Support is only for the new V2 quota file format.
+
+Signed-off-by: Aditya Kali <adityakali@google.com>
+---
+Index: linux-stage/fs/ext4/ext4.h
+===================================================================
+--- linux-stage.orig/fs/ext4/ext4.h    2012-06-26 11:26:23.345235745 +0200
++++ linux-stage/fs/ext4/ext4.h 2012-06-26 11:37:38.250355000 +0200
+@@ -162,6 +162,8 @@ typedef struct ext4_io_end {
+  */
+ #define       EXT4_BAD_INO             1      /* Bad blocks inode */
+ #define EXT4_ROOT_INO          2      /* Root inode */
++#define EXT4_USR_QUOTA_INO       3      /* User quota inode */
++#define EXT4_GRP_QUOTA_INO       4      /* Group quota inode */
+ #define EXT4_BOOT_LOADER_INO   5      /* Boot loader inode */
+ #define EXT4_UNDEL_DIR_INO     6      /* Undelete directory inode */
+ #define EXT4_RESIZE_INO                7      /* Reserved group descriptors inode */
+@@ -1016,7 +1018,9 @@ struct ext4_super_block {
+       __u8    s_last_error_func[32];  /* function where the error happened */
+ #define EXT4_S_ERR_END offsetof(struct ext4_super_block, s_mount_opts)
+       __u8    s_mount_opts[64];
+-      __le32  s_reserved[112];        /* Padding to the end of the block */
++      __le32  s_usr_quota_inum;       /* inode for tracking user quota */
++      __le32  s_grp_quota_inum;       /* inode for tracking group quota */
++      __le32  s_reserved[110];        /* Padding to the end of the block */
+ };
+ #ifdef __KERNEL__
+@@ -1090,6 +1094,7 @@ struct ext4_sb_info {
+ #ifdef CONFIG_QUOTA
+       char *s_qf_names[MAXQUOTAS];            /* Names of quota files with journalled quota */
+       int s_jquota_fmt;                       /* Format of quota to use */
++      unsigned long s_qf_inums[MAXQUOTAS];    /* Quota file inodes */
+ #endif
+       unsigned int s_want_extra_isize; /* New inodes should reserve # bytes */
+       struct rb_root system_blks;
+@@ -1189,6 +1194,8 @@ static inline struct timespec ext4_curre
+ static inline int ext4_valid_inum(struct super_block *sb, unsigned long ino)
+ {
+       return ino == EXT4_ROOT_INO ||
++              ino == EXT4_USR_QUOTA_INO ||
++              ino == EXT4_GRP_QUOTA_INO ||
+               ino == EXT4_JOURNAL_INO ||
+               ino == EXT4_RESIZE_INO ||
+               (ino >= EXT4_FIRST_INO(sb) &&
+@@ -1293,6 +1300,7 @@ EXT4_INODE_BIT_FNS(state, state_flags)
+ #define EXT4_FEATURE_RO_COMPAT_GDT_CSUM               0x0010
+ #define EXT4_FEATURE_RO_COMPAT_DIR_NLINK      0x0020
+ #define EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE    0x0040
++#define EXT4_FEATURE_RO_COMPAT_QUOTA          0x0100
+ #define EXT4_FEATURE_INCOMPAT_COMPRESSION     0x0001
+ #define EXT4_FEATURE_INCOMPAT_FILETYPE                0x0002
+@@ -1325,7 +1333,8 @@ EXT4_INODE_BIT_FNS(state, state_flags)
+                                        EXT4_FEATURE_RO_COMPAT_DIR_NLINK | \
+                                        EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE | \
+                                        EXT4_FEATURE_RO_COMPAT_BTREE_DIR |\
+-                                       EXT4_FEATURE_RO_COMPAT_HUGE_FILE)
++                                       EXT4_FEATURE_RO_COMPAT_HUGE_FILE| \
++                                       EXT4_FEATURE_RO_COMPAT_QUOTA)
+ /*
+  * Default values for user and/or group using reserved blocks
+Index: linux-stage/fs/ext4/ext4_jbd2.h
+===================================================================
+--- linux-stage.orig/fs/ext4/ext4_jbd2.h       2012-06-26 11:35:31.025105000 +0200
++++ linux-stage/fs/ext4/ext4_jbd2.h    2012-06-26 11:37:38.250631000 +0200
+@@ -89,14 +89,20 @@
+ #ifdef CONFIG_QUOTA
+ /* Amount of blocks needed for quota update - we know that the structure was
+  * allocated so we need to update only data block */
+-#define EXT4_QUOTA_TRANS_BLOCKS(sb) (test_opt(sb, QUOTA) ? 1 : 0)
++#define EXT4_QUOTA_TRANS_BLOCKS(sb) ((test_opt(sb, QUOTA) ||\
++              EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_QUOTA)) ?\
++              1 : 0)
+ /* Amount of blocks needed for quota insert/delete - we do some block writes
+  * but inode, sb and group updates are done only once */
+-#define EXT4_QUOTA_INIT_BLOCKS(sb) (test_opt(sb, QUOTA) ? (DQUOT_INIT_ALLOC*\
+-              (EXT4_SINGLEDATA_TRANS_BLOCKS(sb)-3)+3+DQUOT_INIT_REWRITE) : 0)
++#define EXT4_QUOTA_INIT_BLOCKS(sb) ((test_opt(sb, QUOTA) ||\
++              EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_QUOTA)) ?\
++              (DQUOT_INIT_ALLOC*(EXT4_SINGLEDATA_TRANS_BLOCKS(sb)-3)\
++               +3+DQUOT_INIT_REWRITE) : 0)
+-#define EXT4_QUOTA_DEL_BLOCKS(sb) (test_opt(sb, QUOTA) ? (DQUOT_DEL_ALLOC*\
+-              (EXT4_SINGLEDATA_TRANS_BLOCKS(sb)-3)+3+DQUOT_DEL_REWRITE) : 0)
++#define EXT4_QUOTA_DEL_BLOCKS(sb) ((test_opt(sb, QUOTA) ||\
++              EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_QUOTA)) ?\
++              (DQUOT_DEL_ALLOC*(EXT4_SINGLEDATA_TRANS_BLOCKS(sb)-3)\
++               +3+DQUOT_DEL_REWRITE) : 0)
+ #else
+ #define EXT4_QUOTA_TRANS_BLOCKS(sb) 0
+ #define EXT4_QUOTA_INIT_BLOCKS(sb) 0
+Index: linux-stage/fs/ext4/super.c
+===================================================================
+--- linux-stage.orig/fs/ext4/super.c   2012-06-26 11:37:30.905374000 +0200
++++ linux-stage/fs/ext4/super.c        2012-06-26 11:38:30.997488000 +0200
+@@ -86,6 +86,11 @@ wait_queue_head_t aio_wq[WQ_HASH_SZ];
+ static int bigendian_extents;
++#ifdef CONFIG_QUOTA
++static int ext4_acct_on(struct super_block *sb);
++static int ext4_acct_off(struct super_block *sb);
++#endif
++
+ ext4_fsblk_t ext4_block_bitmap(struct super_block *sb,
+                              struct ext4_group_desc *bg)
+ {
+@@ -670,6 +675,12 @@ static void ext4_put_super(struct super_
+       ext4_unregister_li_request(sb);
++#ifdef CONFIG_QUOTA
++      /* disable usage tracking which was enabled at mount time */
++      if (EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_QUOTA))
++              ext4_acct_off(sb);
++#endif
++
+       flush_workqueue(sbi->dio_unwritten_wq);
+       destroy_workqueue(sbi->dio_unwritten_wq);
+@@ -2142,14 +2153,22 @@ static void ext4_orphan_cleanup(struct s
+ #ifdef CONFIG_QUOTA
+       /* Needed for iput() to work correctly and not trash data */
+       sb->s_flags |= MS_ACTIVE;
+-      /* Turn on quotas so that they are updated correctly */
+-      for (i = 0; i < MAXQUOTAS; i++) {
+-              if (EXT4_SB(sb)->s_qf_names[i]) {
+-                      int ret = ext4_quota_on_mount(sb, i);
+-                      if (ret < 0)
+-                              ext4_msg(sb, KERN_ERR,
+-                                      "Cannot turn on journaled "
+-                                      "quota: error %d", ret);
++      if (EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_QUOTA)) {
++              int ret;
++              ret = ext4_acct_on(sb);
++              if (ret)
++                      ext4_msg(sb, KERN_ERR, "Failed to turn on usage "
++                               "tracking for quota: error %d", ret);
++      } else {
++              /* Turn on quotas so that they are updated correctly */
++              for (i = 0; i < MAXQUOTAS; i++) {
++                      if (EXT4_SB(sb)->s_qf_names[i]) {
++                              int ret = ext4_quota_on_mount(sb, i);
++                              if (ret < 0)
++                                      ext4_msg(sb, KERN_ERR,
++                                              "Cannot turn on journaled "
++                                              "quota: error %d", ret);
++                      }
+               }
+       }
+ #endif
+@@ -2193,10 +2212,14 @@ static void ext4_orphan_cleanup(struct s
+               ext4_msg(sb, KERN_INFO, "%d truncate%s cleaned up",
+                      PLURAL(nr_truncates));
+ #ifdef CONFIG_QUOTA
+-      /* Turn quotas off */
+-      for (i = 0; i < MAXQUOTAS; i++) {
+-              if (sb_dqopt(sb)->files[i])
+-                      vfs_quota_off(sb, i, 0);
++      if (EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_QUOTA)) {
++              ext4_acct_off(sb);
++      } else {
++              /* Turn quotas off */
++              for (i = 0; i < MAXQUOTAS; i++) {
++                      if (sb_dqopt(sb)->files[i])
++                              vfs_quota_off(sb, i, 0);
++              }
+       }
+ #endif
+       sb->s_flags = s_flags; /* Restore MS_RDONLY status */
+@@ -3395,6 +3418,15 @@ static int ext4_fill_super(struct super_
+ #ifdef CONFIG_QUOTA
+       sb->s_qcop = &ext4_qctl_operations;
+       sb->dq_op = &ext4_quota_operations;
++
++      if (EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_QUOTA)) {
++              /* Use new qctl operations with quota on function that does not
++               * require user specified quota file path. */
++              sb->s_qcop = &ext4_qctl_operations;
++
++              sbi->s_qf_inums[USRQUOTA] = es->s_usr_quota_inum;
++              sbi->s_qf_inums[GRPQUOTA] = es->s_grp_quota_inum;
++      }
+ #endif
+       INIT_LIST_HEAD(&sbi->s_orphan); /* unlinked but open files */
+       mutex_init(&sbi->s_orphan_lock);
+@@ -3622,8 +3654,31 @@ no_journal:
+       } else
+               descr = "out journal";
+-      ext4_msg(sb, KERN_INFO, "mounted filesystem with%s. "
+-               "Opts: %s%s", descr, sbi->s_es->s_mount_opts,
++#ifdef CONFIG_QUOTA
++      /* Enable space tracking during mount, enforcement can be enabled/disable
++       * later with quota_on/off */
++      if (EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_QUOTA) &&
++          !(sb->s_flags & MS_RDONLY)) {
++              ret = ext4_acct_on(sb);
++              if (ret) {
++                      ext4_msg(sb, KERN_ERR, "Can't enable usage tracking on "
++                               "a filesystem with the QUOTA feature set");
++                      goto failed_mount4;
++              }
++      }
++#else
++      if (EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_QUOTA) &&
++          !(sb->s_flags & MS_RDONLY))
++              ext4_msg(sb, KERN_WARNING, "Mounting a filesystem with the "
++                       "QUOTA feature set whereas the kernel does not "
++                       "support quota, e2fsck will be required to fix usage "
++                       "information");
++
++#endif  /* CONFIG_QUOTA */
++
++      ext4_msg(sb, KERN_INFO, "mounted filesystem with%s. quota=%s. "
++               "Opts: %s%s", descr, sb_any_quota_loaded(sb) ? "on" : "off",
++               sbi->s_es->s_mount_opts,
+                *sbi->s_es->s_mount_opts ? "; " : "");
+       lock_kernel();
+@@ -3981,6 +4036,12 @@ static int ext4_commit_super(struct supe
+       es->s_free_inodes_count =
+               cpu_to_le32(percpu_counter_sum_positive(
+                               &EXT4_SB(sb)->s_freeinodes_counter));
++#ifdef CONFIG_QUOTA
++      if (EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_QUOTA)) {
++              es->s_usr_quota_inum = EXT4_SB(sb)->s_qf_inums[USRQUOTA];
++              es->s_grp_quota_inum = EXT4_SB(sb)->s_qf_inums[GRPQUOTA];
++      }
++#endif
+       sb->s_dirt = 0;
+       BUFFER_TRACE(sbh, "marking dirty");
+       mark_buffer_dirty(sbh);
+@@ -4531,6 +4592,22 @@ static int ext4_quota_on(struct super_bl
+       int err;
+       struct path path;
++      /* When QUOTA feature is set, quota on enables enforcement, accounting
++       * being already enabled at mount time */
++      if (EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_QUOTA)) {
++              struct inode *qf_inode;
++
++              if (!EXT4_SB(sb)->s_qf_inums[type])
++                      return -EINVAL;
++              qf_inode = ext4_iget(sb, EXT4_SB(sb)->s_qf_inums[type]);
++              if (IS_ERR(qf_inode))
++                      return PTR_ERR(qf_inode);
++              err = vfs_quota_enable(qf_inode, type, QFMT_VFS_V1,
++                                     DQUOT_LIMITS_ENABLED);
++              iput(qf_inode);
++              return err;
++      }
++
+       if (!test_opt(sb, QUOTA))
+               return -EINVAL;
+       /* When remounting, no checks are needed and in fact, name is NULL */
+@@ -4630,9 +4707,114 @@ static int ext4_quota_off(struct super_b
+               iput(inode);
+       }
++      /* When QUOTA feature is set, quota off just disables enforcement but
++       * leaves accounting on */
++      if (EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_QUOTA))
++              return vfs_quota_disable(sb, type, DQUOT_LIMITS_ENABLED);
++
+       return vfs_quota_off(sb, type, remount);
+ }
++/*
++ * New quota_on function that is used to turn accounting on when QUOTA
++ * feature is set.
++ */
++static int ext4_acct_on(struct super_block *sb)
++{
++      struct inode *qf_inode[MAXQUOTAS];
++      int           rc;
++
++      if (!EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_QUOTA) ||
++          !EXT4_SB(sb)->s_qf_inums[USRQUOTA] ||
++          !EXT4_SB(sb)->s_qf_inums[GRPQUOTA])
++              return -EINVAL;
++
++      qf_inode[USRQUOTA] = ext4_iget(sb, EXT4_SB(sb)->s_qf_inums[USRQUOTA]);
++      if (IS_ERR(qf_inode[USRQUOTA])) {
++              EXT4_SB(sb)->s_qf_inums[USRQUOTA] = 0;
++              return PTR_ERR(qf_inode[USRQUOTA]);
++      }
++      qf_inode[GRPQUOTA] = ext4_iget(sb, EXT4_SB(sb)->s_qf_inums[GRPQUOTA]);
++      if (IS_ERR(qf_inode[GRPQUOTA])) {
++              iput(qf_inode[USRQUOTA]);
++              EXT4_SB(sb)->s_qf_inums[GRPQUOTA] = 0;
++              return PTR_ERR(qf_inode[GRPQUOTA]);
++      }
++
++      /*
++       * When we journal data on quota file, we have to flush journal to see
++       * all updates to the file when we bypass pagecache...
++       */
++      if (EXT4_SB(sb)->s_journal) {
++              /*
++               * We don't need to lock updates but journal_flush() could
++               * otherwise be livelocked...
++               */
++              jbd2_journal_lock_updates(EXT4_SB(sb)->s_journal);
++              rc = jbd2_journal_flush(EXT4_SB(sb)->s_journal);
++              jbd2_journal_unlock_updates(EXT4_SB(sb)->s_journal);
++              if (rc) {
++                      iput(qf_inode[USRQUOTA]);
++                      iput(qf_inode[GRPQUOTA]);
++                      return rc;
++              }
++      }
++
++      /* only enable quota accounting by default */
++      rc = vfs_quota_enable(qf_inode[USRQUOTA], USRQUOTA, QFMT_VFS_V1,
++                            DQUOT_USAGE_ENABLED);
++      iput(qf_inode[USRQUOTA]);
++      if (rc) {
++              iput(qf_inode[GRPQUOTA]);
++              return rc;
++      }
++      rc = vfs_quota_enable(qf_inode[GRPQUOTA], GRPQUOTA, QFMT_VFS_V1,
++                            DQUOT_USAGE_ENABLED);
++      iput(qf_inode[GRPQUOTA]);
++      return rc;
++}
++
++/*
++ * New quota_on function that is used to turn off accounting when QUOTA feature
++ * is set.
++ */
++static int ext4_acct_off(struct super_block *sb)
++{
++      int type, rc = 0;
++
++      if (!EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_QUOTA))
++              return -EINVAL;
++
++      for (type = 0; type < MAXQUOTAS; type++) {
++              struct inode *inode = sb_dqopt(sb)->files[type];
++              handle_t     *handle;
++
++              if (!inode)
++                      continue;
++              /* Update modification times of quota files when userspace can
++               * start looking at them */
++              handle = ext4_journal_start(inode, 1);
++              if (IS_ERR(handle))
++                      goto out;
++
++              inode->i_mtime = inode->i_ctime = CURRENT_TIME;
++              ext4_mark_inode_dirty(handle, inode);
++              ext4_journal_stop(handle);
++      }
++
++out:
++      for (type = 0; type < MAXQUOTAS; type++) {
++              int ret;
++              ret = vfs_quota_disable(sb, type,
++                                  DQUOT_USAGE_ENABLED | DQUOT_LIMITS_ENABLED);
++              if (!rc && ret)
++                      rc = ret;
++      }
++      return rc;
++}
++
++
++
+ /* Read data from quotafile - avoid pagecache and such because we cannot afford
+  * acquiring the locks... As quota files are never truncated and quota code
+  * itself serializes the operations (and noone else should touch the files)
diff --git a/ldiskfs/kernel_patches/series/ldiskfs-2.6-rhel6.5.series b/ldiskfs/kernel_patches/series/ldiskfs-2.6-rhel6.5.series
new file mode 100644 (file)
index 0000000..fbbac67
--- /dev/null
@@ -0,0 +1,50 @@
+rhel6.3/ext4-use-vzalloc-in-ext4_fill_flex_info.patch
+rhel6.3/ext4-introduce-ext4_kvmalloc-ext4_kzalloc-and-ext4_kvfree.patch
+rhel6.3/ext4-add-missing-kfree-on-error-return-path-in-add_new_gdb.patch
+rhel6.3/ext4-use-ext4_kvzalloc-ext4_kvmalloc-for-s_group_desc-and-s_group_info.patch
+rhel6.3/ext4-wantedi-2.6.patch
+rhel6.3/ext4-map_inode_page-2.6.18.patch
+rhel6.3/export-ext4-2.6.patch
+rhel6.3/ext4-remove-cond_resched-calls.patch
+rhel6.3/ext4-nlink-2.6.patch
+sles11sp1/ext4-ext_generation.patch
+rhel6.3/ext4-inode-version.patch
+rhel6.4/ext4-mmp.patch
+rhel6.3/ext4-lookup-dotdot.patch
+rhel6.3/ext4-print-inum-in-htree-warning.patch
+rhel6.3/ext4-xattr-no-update-ctime.patch
+rhel6.4/ext4-prealloc.patch
+rhel6.3/ext4-mballoc-extra-checks.patch
+rhel6.4/ext4-misc.patch
+rhel6.3/ext4-big-endian-check-2.6.patch
+rhel6.3/ext4-alloc-policy-2.6.patch
+rhel6.3/ext4-force_over_128tb.patch
+rhel6.3/ext4-pdir-fix.patch
+rhel6.3/ext4-add-more-error-checks-to-ext4_mkdir.patch
+rhel6.3/ext4-osd-iop-common.patch
+rhel6.3/ext4-osd-iam-exports.patch
+rhel6.3/ext4-hash-indexed-dir-dotdot-update.patch
+rhel6.3/ext4-kill-dx_root.patch
+rhel6.3/ext4-extents-mount-option.patch
+rhel6.3/ext4-fiemap-2.6.patch
+rhel6.4/ext4-mballoc-pa_free-mismatch.patch
+rhel6.3/ext4-data-in-dirent.patch
+rhel6.3/ext4-large-eas.patch
+rhel6.3/ext4-disable-mb-cache.patch
+rhel6.3/ext4-back-dquot-to.patch
+rhel6.3/ext4-nocmtime-2.6.patch
+rhel6.3/ext4-journal-callback.patch
+rhel6.5/ext4-ext-walk-space.patch
+rhel6.3/ext4-store-tree-generation-at-find.patch
+rhel6.3/ext4-pdirop.patch
+rhel6.4/ext4-extra-isize.patch
+rhel6.3/ext4-quota-force-block-alloc-quotaoff.patch
+rhel6.3/ext4-quota-dont-update-cmtime.patch
+rhel6.5/ext4-quota-first-class.patch
+rhel6.3/ext4-inode_info_reorganize.patch
+rhel6.4/ext4-fix-mbgroups-access.patch
+rhel6.3/ext4-fix-ext4_mb_add_n_trim.patch
+rhel6.3/ext4-max-dir-size.patch
+rhel6.4/ext4-max-dir-size-options.patch
+rhel6.3/ext4-not-discard-preallocation-umount.patch
+rhel6.3/ext4-journal-path-opt.patch
index 6ca08ff..1d994ae 100644 (file)
@@ -342,6 +342,8 @@ else
                        case $RHEL_KERNEL_VERSION in
                                2.6.32-358*)
                                        EXTRA_OFED_INCLUDE="$EXTRA_OFED_INCLUDE -DCONFIG_COMPAT_RHEL_6_4";;
+                               2.6.32-431*)
+                                       EXTRA_OFED_INCLUDE="$EXTRA_OFED_INCLUDE -DCONFIG_COMPAT_RHEL_6_5";;
                        esac
                fi
                AC_MSG_CHECKING([whether to use any OFED backport headers])
index 8bf0e9f..499e0b0 100644 (file)
@@ -2,9 +2,9 @@ TBD Intel Corporation
        * version 2.6.0
        * See http://wiki.whamcloud.com/display/PUB/Lustre+Support+Matrix
        * Server support for kernels:
-        2.6.32-358.23.2.el6  (RHEL6)
+        2.6.32-431.3.1.el6  (RHEL6)
        * Client support for unpatched kernels:
-        2.6.32-358.23.2.el6  (RHEL6)
+        2.6.32-431.3.1.el6  (RHEL6)
          2.6.27.19-5         (SLES11)
         2.6.18-348.3.1.el5  (RHEL5)
          2.6.16.60-0.69.1    (SLES10)
index 6b83ce0..c961816 100644 (file)
@@ -1,8 +1,7 @@
-# i386
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.32
-# Fri Feb 22 02:41:52 2013
+# Wed Dec  4 21:11:24 2013
 #
 # CONFIG_64BIT is not set
 CONFIG_X86_32=y
@@ -387,6 +386,7 @@ CONFIG_MIGRATION=y
 CONFIG_PHYS_ADDR_T_64BIT=y
 CONFIG_ZONE_DMA_FLAG=1
 CONFIG_BOUNCE=y
+CONFIG_NEED_BOUNCE_POOL=y
 CONFIG_VIRT_TO_BUS=y
 CONFIG_KSM=y
 CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
@@ -501,6 +501,7 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
 #
 # CPUFreq processor drivers
 #
+CONFIG_X86_INTEL_PSTATE=m
 CONFIG_X86_PCC_CPUFREQ=m
 CONFIG_X86_ACPI_CPUFREQ=m
 # CONFIG_X86_POWERNOW_K6 is not set
@@ -634,6 +635,8 @@ CONFIG_IP_ROUTE_MULTIPATH=y
 CONFIG_IP_ROUTE_VERBOSE=y
 # CONFIG_IP_PNP is not set
 CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=y
+CONFIG_NET_IP_TUNNEL=m
 CONFIG_NET_IPGRE=m
 CONFIG_NET_IPGRE_BROADCAST=y
 CONFIG_IP_MROUTE=y
@@ -831,6 +834,7 @@ CONFIG_IP_VS_NQ=m
 # IPVS application helper
 #
 CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_PE_SIP=m
 
 #
 # IP: Netfilter Configuration
@@ -938,9 +942,11 @@ CONFIG_NET_DCCPPROBE=m
 CONFIG_IP_SCTP=m
 # CONFIG_SCTP_DBG_MSG is not set
 # CONFIG_SCTP_DBG_OBJCNT is not set
-# CONFIG_SCTP_HMAC_NONE is not set
-# CONFIG_SCTP_HMAC_SHA1 is not set
-CONFIG_SCTP_HMAC_MD5=y
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
+CONFIG_SCTP_COOKIE_HMAC_MD5=y
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
 CONFIG_RDS=m
 CONFIG_RDS_RDMA=m
 CONFIG_RDS_TCP=m
@@ -1039,8 +1045,11 @@ CONFIG_NET_CLS_IND=y
 CONFIG_NET_SCH_FIFO=y
 CONFIG_DCB=y
 CONFIG_OPENVSWITCH=m
+CONFIG_OPENVSWITCH_GRE=y
+CONFIG_OPENVSWITCH_VXLAN=y
 CONFIG_RPS=y
 CONFIG_NETPRIO_CGROUP=y
+CONFIG_RFS_ACCEL=y
 
 #
 # Network testing
@@ -1117,7 +1126,6 @@ CONFIG_CFG80211_DEFAULT_PS=y
 # CONFIG_CFG80211_DEBUGFS is not set
 # CONFIG_CFG80211_INTERNAL_REGDB is not set
 CONFIG_CFG80211_WEXT=y
-CONFIG_WIRELESS_EXT_SYSFS=y
 CONFIG_LIB80211=m
 CONFIG_LIB80211_CRYPT_WEP=m
 CONFIG_LIB80211_CRYPT_CCMP=m
@@ -1133,6 +1141,7 @@ CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
 # CONFIG_MAC80211_MESH is not set
 CONFIG_MAC80211_LEDS=y
 # CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
 # CONFIG_MAC80211_DEBUG_MENU is not set
 CONFIG_WIMAX=m
 CONFIG_WIMAX_DEBUG_LEVEL=8
@@ -1324,6 +1333,7 @@ CONFIG_CISS_SCSI_TAPE=y
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_CRYPTOLOOP=m
 # CONFIG_BLK_DEV_NBD is not set
+CONFIG_BLK_DEV_NVME=m
 CONFIG_BLK_DEV_OSD=m
 CONFIG_BLK_DEV_SX8=m
 # CONFIG_BLK_DEV_UB is not set
@@ -1338,6 +1348,7 @@ CONFIG_ATA_OVER_ETH=m
 CONFIG_XEN_BLKDEV_FRONTEND=m
 CONFIG_VIRTIO_BLK=m
 # CONFIG_BLK_DEV_HD is not set
+# CONFIG_BLK_DEV_RSXX is not set
 CONFIG_MISC_DEVICES=y
 CONFIG_IBM_ASM=m
 # CONFIG_PHANTOM is not set
@@ -1452,6 +1463,9 @@ CONFIG_MEGARAID_SAS=m
 CONFIG_SCSI_MPT2SAS=m
 CONFIG_SCSI_MPT2SAS_MAX_SGE=128
 CONFIG_SCSI_MPT2SAS_LOGGING=y
+CONFIG_SCSI_MPT3SAS=m
+CONFIG_SCSI_MPT3SAS_MAX_SGE=128
+CONFIG_SCSI_MPT3SAS_LOGGING=y
 CONFIG_SCSI_HPTIOP=m
 # CONFIG_SCSI_BUSLOGIC is not set
 CONFIG_VMWARE_PVSCSI=m
@@ -1499,6 +1513,7 @@ CONFIG_SCSI_LPFC=m
 # CONFIG_SCSI_NSP32 is not set
 CONFIG_SCSI_DEBUG=m
 CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
 CONFIG_SCSI_SRP=m
 CONFIG_SCSI_BFA_FC=m
 CONFIG_SCSI_VIRTIO=m
@@ -1597,12 +1612,12 @@ CONFIG_MD_RAID0=m
 CONFIG_MD_RAID1=m
 CONFIG_MD_RAID10=m
 CONFIG_MD_RAID456=m
-# CONFIG_MULTICORE_RAID456 is not set
 # CONFIG_MD_MULTIPATH is not set
 CONFIG_MD_FAULTY=m
 CONFIG_BLK_DEV_DM=m
 CONFIG_DM_DEBUG=y
 CONFIG_DM_BUFIO=m
+CONFIG_DM_BIO_PRISON=m
 CONFIG_DM_PERSISTENT_DATA=m
 CONFIG_DM_CRYPT=m
 CONFIG_DM_SNAPSHOT=m
@@ -1790,8 +1805,8 @@ CONFIG_E1000=m
 CONFIG_E1000E=m
 CONFIG_IP1000=m
 CONFIG_IGB=m
+CONFIG_IGB_HWMON=y
 CONFIG_IGB_DCA=y
-CONFIG_IGB_PTP=y
 CONFIG_IGBVF=m
 CONFIG_NS83820=m
 # CONFIG_HAMACHI is not set
@@ -1842,7 +1857,9 @@ CONFIG_MLX4_CORE=m
 CONFIG_MLX4_DEBUG=y
 CONFIG_TEHUTI=m
 CONFIG_BNX2X=m
+CONFIG_BNX2X_SRIOV=y
 CONFIG_QLCNIC=m
+CONFIG_QLCNIC_SRIOV=y
 CONFIG_QLGE=m
 CONFIG_BNA=m
 CONFIG_SFC=m
@@ -1883,6 +1900,7 @@ CONFIG_P54_USB=m
 CONFIG_P54_PCI=m
 CONFIG_P54_LEDS=y
 CONFIG_ATH_COMMON=m
+CONFIG_ATH_CARDS=m
 # CONFIG_ATH_DEBUG is not set
 CONFIG_ATH5K=m
 # CONFIG_ATH5K_DEBUG is not set
@@ -1895,10 +1913,13 @@ CONFIG_ATH9K=m
 CONFIG_ATH9K_PCI=y
 # CONFIG_ATH9K_AHB is not set
 # CONFIG_ATH9K_DEBUGFS is not set
-CONFIG_ATH9K_RATE_CONTROL=y
-# CONFIG_ATH9K_HTC is not set
-CONFIG_AR9170_USB=m
-CONFIG_AR9170_LEDS=y
+# CONFIG_ATH9K_LEGACY_RATE_CONTROL is not set
+CONFIG_ATH9K_HTC=m
+# CONFIG_ATH9K_HTC_DEBUGFS is not set
+CONFIG_CARL9170=m
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+# CONFIG_CARL9170_HWRNG is not set
 CONFIG_IPW2100=m
 CONFIG_IPW2100_MONITOR=y
 # CONFIG_IPW2100_DEBUG is not set
@@ -1911,6 +1932,9 @@ CONFIG_IPW2200_QOS=y
 CONFIG_LIBIPW=m
 # CONFIG_LIBIPW_DEBUG is not set
 CONFIG_IWLWIFI=m
+CONFIG_IWLDVM=m
+CONFIG_IWLMVM=m
+CONFIG_IWLWIFI_OPMODE_MODULAR=y
 
 #
 # Debugging Options
@@ -1918,7 +1942,6 @@ CONFIG_IWLWIFI=m
 # CONFIG_IWLWIFI_DEBUG is not set
 # CONFIG_IWLWIFI_DEVICE_TRACING is not set
 # CONFIG_IWLWIFI_P2P is not set
-# CONFIG_IWLWIFI_EXPERIMENTAL_MFP is not set
 CONFIG_IWLEGACY=m
 CONFIG_IWL4965=m
 CONFIG_IWL3945=m
@@ -1966,7 +1989,11 @@ CONFIG_WL1251_SDIO=m
 CONFIG_WL12XX=m
 CONFIG_WLCORE=m
 # CONFIG_WLCORE_SDIO is not set
-CONFIG_WL12XX_PLATFORM_DATA=y
+CONFIG_WILINK_PLATFORM_DATA=y
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMSMAC=m
+# CONFIG_BRCM_TRACING is not set
+# CONFIG_BRCMDBG is not set
 CONFIG_ZD1211RW=m
 # CONFIG_ZD1211RW_DEBUG is not set
 CONFIG_RT2X00=m
@@ -1977,14 +2004,17 @@ CONFIG_RT2800PCI=m
 CONFIG_RT2800PCI_RT33XX=y
 CONFIG_RT2800PCI_RT35XX=y
 CONFIG_RT2800PCI_RT53XX=y
+CONFIG_RT2800PCI_RT3290=y
 CONFIG_RT2500USB=m
 CONFIG_RT73USB=m
 CONFIG_RT2800USB=m
 CONFIG_RT2800USB_RT33XX=y
 CONFIG_RT2800USB_RT35XX=y
 CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
 CONFIG_RT2800USB_UNKNOWN=y
 CONFIG_RT2800_LIB=m
+CONFIG_RT2X00_LIB_MMIO=m
 CONFIG_RT2X00_LIB_PCI=m
 CONFIG_RT2X00_LIB_USB=m
 CONFIG_RT2X00_LIB=m
@@ -2002,9 +2032,6 @@ CONFIG_PCI_HERMES=m
 CONFIG_PCMCIA_HERMES=m
 CONFIG_PCMCIA_SPECTRUM=m
 # CONFIG_ORINOCO_USB is not set
-CONFIG_IWM=m
-# CONFIG_IWM_DEBUG is not set
-# CONFIG_IWM_TRACING is not set
 
 #
 # WiMAX Wireless Broadband devices
@@ -2025,6 +2052,7 @@ CONFIG_USB_USBNET=m
 CONFIG_USB_NET_AX8817X=m
 CONFIG_USB_NET_CDCETHER=m
 CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
 CONFIG_USB_NET_DM9601=m
 CONFIG_USB_NET_SMSC95XX=m
 CONFIG_USB_NET_GL620A=m
@@ -2043,6 +2071,7 @@ CONFIG_USB_NET_ZAURUS=m
 CONFIG_USB_HSO=m
 CONFIG_USB_NET_INT51X1=m
 CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_SIERRA_NET=m
 CONFIG_NET_PCMCIA=y
 CONFIG_PCMCIA_3C589=m
 CONFIG_PCMCIA_3C574=m
@@ -2118,6 +2147,7 @@ CONFIG_SLHC=m
 CONFIG_SLIP_SMART=y
 # CONFIG_SLIP_MODE_SLIP6 is not set
 CONFIG_NET_FC=y
+CONFIG_VXLAN=m
 CONFIG_NETCONSOLE=m
 CONFIG_NETCONSOLE_DYNAMIC=y
 CONFIG_NETPOLL=y
@@ -2809,6 +2839,8 @@ CONFIG_BCMA=m
 CONFIG_BCMA_BLOCKIO=y
 CONFIG_BCMA_HOST_PCI_POSSIBLE=y
 CONFIG_BCMA_HOST_PCI=y
+CONFIG_BCMA_DRIVER_GMAC_CMN=y
+CONFIG_BCMA_DRIVER_GPIO=y
 # CONFIG_BCMA_DEBUG is not set
 
 #
@@ -2841,6 +2873,7 @@ CONFIG_MFD_WM8350_I2C=m
 CONFIG_AB3100_CORE=m
 CONFIG_AB3100_OTP=m
 CONFIG_LPC_SCH=m
+CONFIG_LPC_ICH=m
 CONFIG_REGULATOR=y
 # CONFIG_REGULATOR_DEBUG is not set
 CONFIG_REGULATOR_FIXED_VOLTAGE=m
@@ -3241,19 +3274,20 @@ CONFIG_DRM=m
 CONFIG_DRM_KMS_HELPER=m
 CONFIG_DRM_LOAD_EDID_FIRMWARE=y
 CONFIG_DRM_TTM=m
-# CONFIG_DRM_TDFX is not set
-CONFIG_DRM_R128=m
-CONFIG_DRM_RADEON=m
-CONFIG_DRM_RADEON_KMS=y
-CONFIG_DRM_NOUVEAU=m
-CONFIG_DRM_NOUVEAU_BACKLIGHT=y
-# CONFIG_DRM_NOUVEAU_DEBUG is not set
 
 #
 # I2C encoder or helper chips
 #
 CONFIG_DRM_I2C_CH7006=m
 CONFIG_DRM_I2C_SIL164=m
+# CONFIG_DRM_TDFX is not set
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_UMS=y
+CONFIG_DRM_NOUVEAU=m
+CONFIG_NOUVEAU_DEBUG=5
+CONFIG_NOUVEAU_DEBUG_DEFAULT=3
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
 # CONFIG_DRM_I810 is not set
 CONFIG_DRM_I915=m
 CONFIG_DRM_I915_KMS=y
@@ -3263,6 +3297,7 @@ CONFIG_DRM_VIA=m
 CONFIG_DRM_SAVAGE=m
 CONFIG_VGASTATE=m
 CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_HDMI=y
 CONFIG_FB=y
 # CONFIG_FIRMWARE_EDID is not set
 CONFIG_FB_DDC=m
@@ -3347,6 +3382,7 @@ CONFIG_XEN_FBDEV_FRONTEND=y
 # CONFIG_FB_METRONOME is not set
 # CONFIG_FB_MB862XX is not set
 # CONFIG_FB_BROADSHEET is not set
+CONFIG_FB_HYPERV=m
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=m
 # CONFIG_LCD_ILI9320 is not set
@@ -3514,6 +3550,7 @@ CONFIG_SND_ENS1371=m
 CONFIG_SND_ES1968=m
 # CONFIG_SND_FM801 is not set
 CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_DSP_LOADER=y
 CONFIG_SND_HDA_PREALLOC_SIZE=512
 CONFIG_SND_HDA_HWDEP=y
 # CONFIG_SND_HDA_RECONFIG is not set
@@ -3531,10 +3568,10 @@ CONFIG_SND_HDA_CODEC_CIRRUS=y
 CONFIG_SND_HDA_CODEC_CONEXANT=y
 CONFIG_SND_HDA_CODEC_CA0110=y
 CONFIG_SND_HDA_CODEC_CA0132=y
+CONFIG_SND_HDA_CODEC_CA0132_DSP=y
 CONFIG_SND_HDA_CODEC_CMEDIA=y
 CONFIG_SND_HDA_CODEC_SI3054=y
 CONFIG_SND_HDA_GENERIC=y
-CONFIG_SND_HDA_POWER_SAVE=y
 CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
 CONFIG_SND_HDSP=m
 CONFIG_SND_HDSPM=m
@@ -3891,6 +3928,7 @@ CONFIG_INFINIBAND_CXGB4=m
 CONFIG_MLX4_INFINIBAND=m
 CONFIG_INFINIBAND_NES=m
 # CONFIG_INFINIBAND_NES_DEBUG is not set
+# CONFIG_INFINIBAND_OCRDMA is not set
 CONFIG_INFINIBAND_IPOIB=m
 CONFIG_INFINIBAND_IPOIB_CM=y
 CONFIG_INFINIBAND_IPOIB_DEBUG=y
@@ -3906,7 +3944,6 @@ CONFIG_EDAC=y
 CONFIG_EDAC_DECODE_MCE=m
 # CONFIG_EDAC_MCE_INJ is not set
 CONFIG_EDAC_MM_EDAC=m
-CONFIG_EDAC_MCE=y
 CONFIG_EDAC_AMD76X=m
 CONFIG_EDAC_E7XXX=m
 CONFIG_EDAC_E752X=m
@@ -4115,6 +4152,7 @@ CONFIG_TOPSTAR_LAPTOP=m
 CONFIG_ACPI_TOSHIBA=m
 CONFIG_INTEL_IPS=m
 CONFIG_MXM_WMI=m
+# CONFIG_PVPANIC is not set
 
 #
 # Firmware Drivers
@@ -4587,9 +4625,10 @@ CONFIG_CRYPTO_MANAGER2=y
 CONFIG_CRYPTO_GF128MUL=m
 CONFIG_CRYPTO_NULL=m
 CONFIG_CRYPTO_WORKQUEUE=y
-# CONFIG_CRYPTO_CRYPTD is not set
+CONFIG_CRYPTO_CRYPTD=m
 CONFIG_CRYPTO_AUTHENC=m
 CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_ABLK_HELPER_X86=m
 
 #
 # Authenticated Encryption with Associated Data
@@ -4640,6 +4679,7 @@ CONFIG_CRYPTO_WP512=m
 #
 CONFIG_CRYPTO_AES=m
 CONFIG_CRYPTO_AES_586=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
 CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_ARC4=m
 CONFIG_CRYPTO_BLOWFISH=m
@@ -4725,6 +4765,7 @@ CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
 CONFIG_HAS_DMA=y
 CONFIG_CHECK_SIGNATURE=y
+CONFIG_CPU_RMAP=y
 CONFIG_NLATTR=y
 CONFIG_AVERAGE=y
 CONFIG_CORDIC=m
index d54c6da..2470a5b 100644 (file)
@@ -1,8 +1,7 @@
-# x86_64
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.32
-# Thu Aug 29 08:49:23 2013
+# Wed Dec  4 20:57:50 2013
 #
 CONFIG_64BIT=y
 # CONFIG_X86_32 is not set
@@ -468,6 +467,7 @@ CONFIG_ACPI_HED=y
 CONFIG_ACPI_APEI=y
 CONFIG_ACPI_APEI_GHES=y
 CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
 CONFIG_ACPI_APEI_EINJ=m
 CONFIG_ACPI_APEI_ERST_DEBUG=m
 CONFIG_SFI=y
@@ -494,6 +494,7 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
 #
 # CPUFreq processor drivers
 #
+CONFIG_X86_INTEL_PSTATE=m
 CONFIG_X86_PCC_CPUFREQ=m
 CONFIG_X86_ACPI_CPUFREQ=m
 CONFIG_X86_POWERNOW_K8=m
@@ -611,6 +612,8 @@ CONFIG_IP_ROUTE_MULTIPATH=y
 CONFIG_IP_ROUTE_VERBOSE=y
 # CONFIG_IP_PNP is not set
 CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=y
+CONFIG_NET_IP_TUNNEL=m
 CONFIG_NET_IPGRE=m
 CONFIG_NET_IPGRE_BROADCAST=y
 CONFIG_IP_MROUTE=y
@@ -808,6 +811,7 @@ CONFIG_IP_VS_NQ=m
 # IPVS application helper
 #
 CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_PE_SIP=m
 
 #
 # IP: Netfilter Configuration
@@ -915,9 +919,11 @@ CONFIG_NET_DCCPPROBE=m
 CONFIG_IP_SCTP=m
 # CONFIG_SCTP_DBG_MSG is not set
 # CONFIG_SCTP_DBG_OBJCNT is not set
-# CONFIG_SCTP_HMAC_NONE is not set
-# CONFIG_SCTP_HMAC_SHA1 is not set
-CONFIG_SCTP_HMAC_MD5=y
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
+CONFIG_SCTP_COOKIE_HMAC_MD5=y
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
 CONFIG_RDS=m
 CONFIG_RDS_RDMA=m
 CONFIG_RDS_TCP=m
@@ -1016,8 +1022,11 @@ CONFIG_NET_CLS_IND=y
 CONFIG_NET_SCH_FIFO=y
 CONFIG_DCB=y
 CONFIG_OPENVSWITCH=m
+CONFIG_OPENVSWITCH_GRE=y
+CONFIG_OPENVSWITCH_VXLAN=y
 CONFIG_RPS=y
 CONFIG_NETPRIO_CGROUP=y
+CONFIG_RFS_ACCEL=y
 
 #
 # Network testing
@@ -1093,7 +1102,6 @@ CONFIG_CFG80211_DEFAULT_PS=y
 # CONFIG_CFG80211_DEBUGFS is not set
 # CONFIG_CFG80211_INTERNAL_REGDB is not set
 CONFIG_CFG80211_WEXT=y
-CONFIG_WIRELESS_EXT_SYSFS=y
 CONFIG_LIB80211=m
 CONFIG_LIB80211_CRYPT_WEP=m
 CONFIG_LIB80211_CRYPT_CCMP=m
@@ -1109,6 +1117,7 @@ CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
 # CONFIG_MAC80211_MESH is not set
 CONFIG_MAC80211_LEDS=y
 # CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
 # CONFIG_MAC80211_DEBUG_MENU is not set
 CONFIG_WIMAX=m
 CONFIG_WIMAX_DEBUG_LEVEL=8
@@ -1296,6 +1305,7 @@ CONFIG_CISS_SCSI_TAPE=y
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_CRYPTOLOOP=m
 # CONFIG_BLK_DEV_NBD is not set
+CONFIG_BLK_DEV_NVME=m
 CONFIG_BLK_DEV_OSD=m
 CONFIG_BLK_DEV_SX8=m
 # CONFIG_BLK_DEV_UB is not set
@@ -1310,6 +1320,7 @@ CONFIG_ATA_OVER_ETH=m
 CONFIG_XEN_BLKDEV_FRONTEND=m
 CONFIG_VIRTIO_BLK=m
 # CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_RSXX=m
 CONFIG_MISC_DEVICES=y
 # CONFIG_IBM_ASM is not set
 # CONFIG_PHANTOM is not set
@@ -1423,6 +1434,9 @@ CONFIG_MEGARAID_SAS=m
 CONFIG_SCSI_MPT2SAS=m
 CONFIG_SCSI_MPT2SAS_MAX_SGE=128
 CONFIG_SCSI_MPT2SAS_LOGGING=y
+CONFIG_SCSI_MPT3SAS=m
+CONFIG_SCSI_MPT3SAS_MAX_SGE=128
+CONFIG_SCSI_MPT3SAS_LOGGING=y
 CONFIG_SCSI_HPTIOP=m
 # CONFIG_SCSI_BUSLOGIC is not set
 CONFIG_VMWARE_PVSCSI=m
@@ -1459,6 +1473,7 @@ CONFIG_SCSI_LPFC=m
 # CONFIG_SCSI_DC390T is not set
 CONFIG_SCSI_DEBUG=m
 CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
 CONFIG_SCSI_SRP=m
 CONFIG_SCSI_BFA_FC=m
 CONFIG_SCSI_VIRTIO=m
@@ -1549,12 +1564,12 @@ CONFIG_MD_RAID0=m
 CONFIG_MD_RAID1=m
 CONFIG_MD_RAID10=m
 CONFIG_MD_RAID456=m
-# CONFIG_MULTICORE_RAID456 is not set
 # CONFIG_MD_MULTIPATH is not set
 CONFIG_MD_FAULTY=m
 CONFIG_BLK_DEV_DM=m
 CONFIG_DM_DEBUG=y
 CONFIG_DM_BUFIO=m
+CONFIG_DM_BIO_PRISON=m
 CONFIG_DM_PERSISTENT_DATA=m
 CONFIG_DM_CRYPT=m
 CONFIG_DM_SNAPSHOT=m
@@ -1713,8 +1728,8 @@ CONFIG_E1000=m
 CONFIG_E1000E=m
 CONFIG_IP1000=m
 CONFIG_IGB=m
+CONFIG_IGB_HWMON=y
 CONFIG_IGB_DCA=y
-CONFIG_IGB_PTP=y
 CONFIG_IGBVF=m
 CONFIG_NS83820=m
 # CONFIG_HAMACHI is not set
@@ -1765,7 +1780,9 @@ CONFIG_MLX4_CORE=m
 CONFIG_MLX4_DEBUG=y
 CONFIG_TEHUTI=m
 CONFIG_BNX2X=m
+CONFIG_BNX2X_SRIOV=y
 CONFIG_QLCNIC=m
+CONFIG_QLCNIC_SRIOV=y
 CONFIG_QLGE=m
 CONFIG_BNA=m
 CONFIG_SFC=m
@@ -1806,6 +1823,7 @@ CONFIG_P54_USB=m
 CONFIG_P54_PCI=m
 CONFIG_P54_LEDS=y
 CONFIG_ATH_COMMON=m
+CONFIG_ATH_CARDS=m
 # CONFIG_ATH_DEBUG is not set
 CONFIG_ATH5K=m
 # CONFIG_ATH5K_DEBUG is not set
@@ -1818,10 +1836,13 @@ CONFIG_ATH9K=m
 CONFIG_ATH9K_PCI=y
 # CONFIG_ATH9K_AHB is not set
 # CONFIG_ATH9K_DEBUGFS is not set
-CONFIG_ATH9K_RATE_CONTROL=y
-# CONFIG_ATH9K_HTC is not set
-CONFIG_AR9170_USB=m
-CONFIG_AR9170_LEDS=y
+# CONFIG_ATH9K_LEGACY_RATE_CONTROL is not set
+CONFIG_ATH9K_HTC=m
+# CONFIG_ATH9K_HTC_DEBUGFS is not set
+CONFIG_CARL9170=m
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+# CONFIG_CARL9170_HWRNG is not set
 CONFIG_IPW2100=m
 CONFIG_IPW2100_MONITOR=y
 # CONFIG_IPW2100_DEBUG is not set
@@ -1834,6 +1855,9 @@ CONFIG_IPW2200_QOS=y
 CONFIG_LIBIPW=m
 # CONFIG_LIBIPW_DEBUG is not set
 CONFIG_IWLWIFI=m
+CONFIG_IWLDVM=m
+CONFIG_IWLMVM=m
+CONFIG_IWLWIFI_OPMODE_MODULAR=y
 
 #
 # Debugging Options
@@ -1841,7 +1865,6 @@ CONFIG_IWLWIFI=m
 # CONFIG_IWLWIFI_DEBUG is not set
 # CONFIG_IWLWIFI_DEVICE_TRACING is not set
 # CONFIG_IWLWIFI_P2P is not set
-# CONFIG_IWLWIFI_EXPERIMENTAL_MFP is not set
 CONFIG_IWLEGACY=m
 CONFIG_IWL4965=m
 CONFIG_IWL3945=m
@@ -1889,7 +1912,11 @@ CONFIG_WL1251_SDIO=m
 CONFIG_WL12XX=m
 CONFIG_WLCORE=m
 # CONFIG_WLCORE_SDIO is not set
-CONFIG_WL12XX_PLATFORM_DATA=y
+CONFIG_WILINK_PLATFORM_DATA=y
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMSMAC=m
+# CONFIG_BRCM_TRACING is not set
+# CONFIG_BRCMDBG is not set
 CONFIG_ZD1211RW=m
 # CONFIG_ZD1211RW_DEBUG is not set
 CONFIG_RT2X00=m
@@ -1900,14 +1927,17 @@ CONFIG_RT2800PCI=m
 CONFIG_RT2800PCI_RT33XX=y
 CONFIG_RT2800PCI_RT35XX=y
 CONFIG_RT2800PCI_RT53XX=y
+CONFIG_RT2800PCI_RT3290=y
 CONFIG_RT2500USB=m
 CONFIG_RT73USB=m
 CONFIG_RT2800USB=m
 CONFIG_RT2800USB_RT33XX=y
 CONFIG_RT2800USB_RT35XX=y
 CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
 CONFIG_RT2800USB_UNKNOWN=y
 CONFIG_RT2800_LIB=m
+CONFIG_RT2X00_LIB_MMIO=m
 CONFIG_RT2X00_LIB_PCI=m
 CONFIG_RT2X00_LIB_USB=m
 CONFIG_RT2X00_LIB=m
@@ -1925,9 +1955,6 @@ CONFIG_PCI_HERMES=m
 CONFIG_PCMCIA_HERMES=m
 CONFIG_PCMCIA_SPECTRUM=m
 # CONFIG_ORINOCO_USB is not set
-CONFIG_IWM=m
-# CONFIG_IWM_DEBUG is not set
-# CONFIG_IWM_TRACING is not set
 
 #
 # WiMAX Wireless Broadband devices
@@ -1948,6 +1975,7 @@ CONFIG_USB_USBNET=m
 CONFIG_USB_NET_AX8817X=m
 CONFIG_USB_NET_CDCETHER=m
 CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
 CONFIG_USB_NET_DM9601=m
 CONFIG_USB_NET_SMSC95XX=m
 CONFIG_USB_NET_GL620A=m
@@ -1966,6 +1994,7 @@ CONFIG_USB_NET_ZAURUS=m
 CONFIG_USB_HSO=m
 CONFIG_USB_NET_INT51X1=m
 CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_SIERRA_NET=m
 CONFIG_NET_PCMCIA=y
 CONFIG_PCMCIA_3C589=m
 CONFIG_PCMCIA_3C574=m
@@ -2034,6 +2063,7 @@ CONFIG_SLHC=m
 CONFIG_SLIP_SMART=y
 # CONFIG_SLIP_MODE_SLIP6 is not set
 CONFIG_NET_FC=y
+CONFIG_VXLAN=m
 CONFIG_NETCONSOLE=m
 CONFIG_NETCONSOLE_DYNAMIC=y
 CONFIG_NETPOLL=y
@@ -2683,6 +2713,8 @@ CONFIG_BCMA=m
 CONFIG_BCMA_BLOCKIO=y
 CONFIG_BCMA_HOST_PCI_POSSIBLE=y
 CONFIG_BCMA_HOST_PCI=y
+CONFIG_BCMA_DRIVER_GMAC_CMN=y
+CONFIG_BCMA_DRIVER_GPIO=y
 # CONFIG_BCMA_DEBUG is not set
 
 #
@@ -2715,6 +2747,7 @@ CONFIG_MFD_WM8350_I2C=m
 CONFIG_AB3100_CORE=m
 CONFIG_AB3100_OTP=m
 CONFIG_LPC_SCH=m
+CONFIG_LPC_ICH=m
 CONFIG_REGULATOR=y
 # CONFIG_REGULATOR_DEBUG is not set
 CONFIG_REGULATOR_FIXED_VOLTAGE=m
@@ -3107,19 +3140,20 @@ CONFIG_DRM=m
 CONFIG_DRM_KMS_HELPER=m
 CONFIG_DRM_LOAD_EDID_FIRMWARE=y
 CONFIG_DRM_TTM=m
-# CONFIG_DRM_TDFX is not set
-CONFIG_DRM_R128=m
-CONFIG_DRM_RADEON=m
-CONFIG_DRM_RADEON_KMS=y
-CONFIG_DRM_NOUVEAU=m
-CONFIG_DRM_NOUVEAU_BACKLIGHT=y
-# CONFIG_DRM_NOUVEAU_DEBUG is not set
 
 #
 # I2C encoder or helper chips
 #
 CONFIG_DRM_I2C_CH7006=m
 CONFIG_DRM_I2C_SIL164=m
+# CONFIG_DRM_TDFX is not set
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_UMS=y
+CONFIG_DRM_NOUVEAU=m
+CONFIG_NOUVEAU_DEBUG=5
+CONFIG_NOUVEAU_DEBUG_DEFAULT=3
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
 # CONFIG_DRM_I810 is not set
 CONFIG_DRM_I915=m
 CONFIG_DRM_I915_KMS=y
@@ -3129,6 +3163,7 @@ CONFIG_DRM_VIA=m
 CONFIG_DRM_SAVAGE=m
 CONFIG_VGASTATE=m
 CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_HDMI=y
 CONFIG_FB=y
 # CONFIG_FIRMWARE_EDID is not set
 CONFIG_FB_DDC=m
@@ -3209,6 +3244,7 @@ CONFIG_XEN_FBDEV_FRONTEND=y
 # CONFIG_FB_METRONOME is not set
 # CONFIG_FB_MB862XX is not set
 # CONFIG_FB_BROADSHEET is not set
+CONFIG_FB_HYPERV=m
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=m
 # CONFIG_LCD_ILI9320 is not set
@@ -3341,6 +3377,7 @@ CONFIG_SND_ENS1371=m
 CONFIG_SND_ES1968=m
 # CONFIG_SND_FM801 is not set
 CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_DSP_LOADER=y
 CONFIG_SND_HDA_PREALLOC_SIZE=512
 CONFIG_SND_HDA_HWDEP=y
 # CONFIG_SND_HDA_RECONFIG is not set
@@ -3358,10 +3395,10 @@ CONFIG_SND_HDA_CODEC_CIRRUS=y
 CONFIG_SND_HDA_CODEC_CONEXANT=y
 CONFIG_SND_HDA_CODEC_CA0110=y
 CONFIG_SND_HDA_CODEC_CA0132=y
+CONFIG_SND_HDA_CODEC_CA0132_DSP=y
 CONFIG_SND_HDA_CODEC_CMEDIA=y
 CONFIG_SND_HDA_CODEC_SI3054=y
 CONFIG_SND_HDA_GENERIC=y
-CONFIG_SND_HDA_POWER_SAVE=y
 CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
 CONFIG_SND_HDSP=m
 CONFIG_SND_HDSPM=m
@@ -3719,6 +3756,7 @@ CONFIG_INFINIBAND_CXGB4=m
 CONFIG_MLX4_INFINIBAND=m
 CONFIG_INFINIBAND_NES=m
 # CONFIG_INFINIBAND_NES_DEBUG is not set
+# CONFIG_INFINIBAND_OCRDMA is not set
 CONFIG_INFINIBAND_IPOIB=m
 CONFIG_INFINIBAND_IPOIB_CM=y
 CONFIG_INFINIBAND_IPOIB_DEBUG=y
@@ -3734,7 +3772,6 @@ CONFIG_EDAC=y
 CONFIG_EDAC_DECODE_MCE=m
 # CONFIG_EDAC_MCE_INJ is not set
 CONFIG_EDAC_MM_EDAC=m
-CONFIG_EDAC_MCE=y
 CONFIG_EDAC_AMD64=m
 # CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
 CONFIG_EDAC_E752X=m
@@ -3932,13 +3969,14 @@ CONFIG_THINKPAD_ACPI=m
 CONFIG_THINKPAD_ACPI_VIDEO=y
 CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
 # CONFIG_INTEL_MENLOW is not set
-# CONFIG_EEEPC_LAPTOP is not set
+CONFIG_EEEPC_LAPTOP=m
 CONFIG_ACPI_WMI=m
 # CONFIG_ACPI_ASUS is not set
 CONFIG_TOPSTAR_LAPTOP=m
 CONFIG_ACPI_TOSHIBA=m
 CONFIG_INTEL_IPS=m
 CONFIG_MXM_WMI=m
+CONFIG_PVPANIC=y
 
 #
 # Firmware Drivers
@@ -4421,6 +4459,8 @@ CONFIG_CRYPTO_WORKQUEUE=y
 CONFIG_CRYPTO_CRYPTD=m
 CONFIG_CRYPTO_AUTHENC=m
 CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_ABLK_HELPER_X86=m
+CONFIG_CRYPTO_GLUE_HELPER_X86=m
 
 #
 # Authenticated Encryption with Associated Data
@@ -4439,7 +4479,6 @@ CONFIG_CRYPTO_ECB=m
 CONFIG_CRYPTO_LRW=m
 CONFIG_CRYPTO_PCBC=m
 CONFIG_CRYPTO_XTS=m
-CONFIG_CRYPTO_FPU=m
 
 #
 # Hash modes
@@ -4516,6 +4555,7 @@ CONFIG_HAVE_KVM=y
 CONFIG_HAVE_KVM_IRQCHIP=y
 CONFIG_HAVE_KVM_EVENTFD=y
 CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
 CONFIG_VIRTUALIZATION=y
 CONFIG_KVM=m
 CONFIG_KVM_INTEL=m
@@ -4562,6 +4602,7 @@ CONFIG_HAS_IOPORT=y
 CONFIG_HAS_DMA=y
 CONFIG_CHECK_SIGNATURE=y
 CONFIG_CPUMASK_OFFSTACK=y
+CONFIG_CPU_RMAP=y
 CONFIG_NLATTR=y
 CONFIG_AVERAGE=y
 CONFIG_CORDIC=m
index 4879a67..54ca60e 100644 (file)
@@ -10,7 +10,7 @@ Index: linux-2.6.32-131.0.15.el6.x86_64/drivers/md/raid5.c
 @@ -2177,6 +2177,8 @@ static int add_stripe_bio(struct stripe_
                bi->bi_next = *bip;
        *bip = bi;
-       bi->bi_phys_segments++;
+       raid5_inc_bi_active_stripes(bi);
 +      if (bio_rw_flagged(bi, BIO_RW_SYNCIO) && !forwrite)
 +              clear_bit(R5_UPTODATE, &sh->dev[dd_idx].flags); /* force to read from disk. */
  
diff --git a/lustre/kernel_patches/patches/vfs_linkat_leakfix.patch b/lustre/kernel_patches/patches/vfs_linkat_leakfix.patch
new file mode 100644 (file)
index 0000000..3a7a327
--- /dev/null
@@ -0,0 +1,10 @@
+--- linux-2.6.32-431.3.1.el6-debug/fs/namei.c-orig     2014-01-30 19:53:32.885946633 -0500
++++ linux-2.6.32-431.3.1.el6-debug/fs/namei.c  2014-01-30 21:10:31.880946625 -0500
+@@ -2897,6 +2897,7 @@ out_release:
+       path_put(&nd.path);
+       putname(to);
+       if (retry_estale(error, how)) {
++              path_put(&old_path);
+               how |= LOOKUP_REVAL;
+               goto retry;
+       }
index 7fe157d..2429635 100644 (file)
@@ -6,3 +6,4 @@ export-2.6.32-vanilla.patch
 bh_lru_size_config.patch
 quota-replace-dqptr-sem.patch
 quota-avoid-dqget-calls.patch
+vfs_linkat_leakfix.patch
index 5072dd4..5bea1e0 100644 (file)
@@ -1,5 +1,5 @@
 lnxmaj="2.6.32"
-lnxrel="358.23.2.el6"
+lnxrel="431.3.1.el6"
 
 KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm
 SERIES=2.6-rhel6.series
index f441717..3a0c948 100644 (file)
@@ -1,10 +1,10 @@
 SERIES                VERSION                  COMMENT
 
 SUPPORTED KERNELS:
-2.6-rhel6             RHEL6: 2.6.32-358.23.2.el6
+2.6-rhel6             RHEL6: 2.6.32-431.3.1.el6
 
 CLIENT SUPPORT FOR UNPATCHED KERNELS:
        2.6.18-348.3.1.el5      (RHEL5)
-       2.6.32-358.23.2.el6     (RHEL6)
+       2.6.32-431.3.1.el6      (RHEL6)
        2.6.16.60-0.69.1        (SLES10)
        2.6.27.19-5             (SLES11)
index e25c2f6..2b46a12 100644 (file)
@@ -447,6 +447,10 @@ test_17g() {
        [ $(lustre_version_code $SINGLEMDS) -le $(version_code 2.3.55) ] &&
                TESTS="4094 4095"
 
+       # skip long symlink name for rhel6.5.
+       # rhel6.5 has a limit (PATH_MAX - sizeof(struct filename))
+       grep -q '6.5' /etc/redhat-release && TESTS="59 60 61 4062 4063"
+
        for i in $TESTS; do
                local SYMNAME=$(str_repeat 'x' $i)
                ln -s $SYMNAME $DIR/$tdir/f$i || error "failed $i-char symlink"