From efa8fa578d2f7eeeaea11522dd311dddaa715a03 Mon Sep 17 00:00:00 2001 From: yangsheng Date: Thu, 9 Jan 2014 00:03:17 +0800 Subject: [PATCH] LU-4287 kernel: kernel update RHEL6.5 [2.6.32-431.3.1.el6] 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 Signed-off-by: yang sheng Change-Id: I7112747970343b1264910aa21d7a62c45b5ca1ea Reviewed-on: http://review.whamcloud.com/8549 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Johann Lombardi Reviewed-by: Alex Zhuravlev Reviewed-by: Oleg Drokin --- config/lustre-build-ldiskfs.m4 | 4 +- .../patches/rhel6.5/ext4-ext-walk-space.patch | 163 +++++++++ .../patches/rhel6.5/ext4-quota-first-class.patch | 399 +++++++++++++++++++++ .../series/ldiskfs-2.6-rhel6.5.series | 50 +++ lnet/autoconf/lustre-lnet.m4 | 2 + lustre/ChangeLog | 4 +- .../kernel-2.6.32-2.6-rhel6-i686.config | 95 +++-- .../kernel-2.6.32-2.6-rhel6-x86_64.config | 97 +++-- .../patches/raid5-mmp-unplug-dev-rhel6.patch | 2 +- .../patches/vfs_linkat_leakfix.patch | 10 + lustre/kernel_patches/series/2.6-rhel6.series | 1 + lustre/kernel_patches/targets/2.6-rhel6.target.in | 2 +- lustre/kernel_patches/which_patch | 4 +- lustre/tests/sanity.sh | 4 + 14 files changed, 775 insertions(+), 62 deletions(-) create mode 100644 ldiskfs/kernel_patches/patches/rhel6.5/ext4-ext-walk-space.patch create mode 100644 ldiskfs/kernel_patches/patches/rhel6.5/ext4-quota-first-class.patch create mode 100644 ldiskfs/kernel_patches/series/ldiskfs-2.6-rhel6.5.series create mode 100644 lustre/kernel_patches/patches/vfs_linkat_leakfix.patch diff --git a/config/lustre-build-ldiskfs.m4 b/config/lustre-build-ldiskfs.m4 index 4b15de3..f50373c 100644 --- a/config/lustre-build-ldiskfs.m4 +++ b/config/lustre-build-ldiskfs.m4 @@ -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 index 0000000..714de7b --- /dev/null +++ b/ldiskfs/kernel_patches/patches/rhel6.5/ext4-ext-walk-space.patch @@ -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 index 0000000..b7c2a0b --- /dev/null +++ b/ldiskfs/kernel_patches/patches/rhel6.5/ext4-quota-first-class.patch @@ -0,0 +1,399 @@ +From: Aditya Kali + +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 +--- +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 index 0000000..fbbac67 --- /dev/null +++ b/ldiskfs/kernel_patches/series/ldiskfs-2.6-rhel6.5.series @@ -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 diff --git a/lnet/autoconf/lustre-lnet.m4 b/lnet/autoconf/lustre-lnet.m4 index 6ca08ff..1d994ae 100644 --- a/lnet/autoconf/lustre-lnet.m4 +++ b/lnet/autoconf/lustre-lnet.m4 @@ -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]) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 8bf0e9f..499e0b0 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -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) diff --git a/lustre/kernel_patches/kernel_configs/kernel-2.6.32-2.6-rhel6-i686.config b/lustre/kernel_patches/kernel_configs/kernel-2.6.32-2.6-rhel6-i686.config index 6b83ce0..c961816 100644 --- a/lustre/kernel_patches/kernel_configs/kernel-2.6.32-2.6-rhel6-i686.config +++ b/lustre/kernel_patches/kernel_configs/kernel-2.6.32-2.6-rhel6-i686.config @@ -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 diff --git a/lustre/kernel_patches/kernel_configs/kernel-2.6.32-2.6-rhel6-x86_64.config b/lustre/kernel_patches/kernel_configs/kernel-2.6.32-2.6-rhel6-x86_64.config index d54c6da..2470a5b 100644 --- a/lustre/kernel_patches/kernel_configs/kernel-2.6.32-2.6-rhel6-x86_64.config +++ b/lustre/kernel_patches/kernel_configs/kernel-2.6.32-2.6-rhel6-x86_64.config @@ -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 diff --git a/lustre/kernel_patches/patches/raid5-mmp-unplug-dev-rhel6.patch b/lustre/kernel_patches/patches/raid5-mmp-unplug-dev-rhel6.patch index 4879a67..54ca60e 100644 --- a/lustre/kernel_patches/patches/raid5-mmp-unplug-dev-rhel6.patch +++ b/lustre/kernel_patches/patches/raid5-mmp-unplug-dev-rhel6.patch @@ -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 index 0000000..3a7a327 --- /dev/null +++ b/lustre/kernel_patches/patches/vfs_linkat_leakfix.patch @@ -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; + } diff --git a/lustre/kernel_patches/series/2.6-rhel6.series b/lustre/kernel_patches/series/2.6-rhel6.series index 7fe157d..2429635 100644 --- a/lustre/kernel_patches/series/2.6-rhel6.series +++ b/lustre/kernel_patches/series/2.6-rhel6.series @@ -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 diff --git a/lustre/kernel_patches/targets/2.6-rhel6.target.in b/lustre/kernel_patches/targets/2.6-rhel6.target.in index 5072dd4..5bea1e0 100644 --- a/lustre/kernel_patches/targets/2.6-rhel6.target.in +++ b/lustre/kernel_patches/targets/2.6-rhel6.target.in @@ -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 diff --git a/lustre/kernel_patches/which_patch b/lustre/kernel_patches/which_patch index f441717..3a0c948 100644 --- a/lustre/kernel_patches/which_patch +++ b/lustre/kernel_patches/which_patch @@ -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) diff --git a/lustre/tests/sanity.sh b/lustre/tests/sanity.sh index e25c2f6..2b46a12 100644 --- a/lustre/tests/sanity.sh +++ b/lustre/tests/sanity.sh @@ -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" -- 1.8.3.1