Update RHEL5.8 kernel to 2.6.18-308.1.1.el5.
Signed-off-by: yang sheng <ys@whamcloud.com>
Change-Id: Id8394bc1cb57d9555e4cda1312200a23b0915c84
Reviewed-on: http://review.whamcloud.com/2175
Reviewed-by: Johann Lombardi <johann@whamcloud.com>
Tested-by: Hudson
Reviewed-by: Bobi Jam <bobijam@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: James Simmons <uja.ornl@gmail.com>
2012-xx-xx Whamcloud, Inc.
* version 1.8.8-wc1
* Support for kernels:
- 2.6.18-274.3.1.el5 (RHEL 5)
+ 2.6.18-308.1.1.el5 (RHEL 5)
2.6.32-220.7.1.el6 (RHEL 6) - patchless client only
* Recommended e2fsprogs version: 1.41.90.wc3
See http://wiki.whamcloud.com/display/PUB/Changelog+1.8 for more information.
Severity : enhancement
+Jira : LU-1052
+Description: Kernel update [RHEL5.8 2.6.18-308.1.1.el5]
+
+Severity : enhancement
Jira : LU-1241
Description: Update RHEL6.2 kernel to 2.6.32-220.7.1.
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.18-prep
-# Thu Aug 11 21:10:01 2011
+# Sun Mar 18 11:07:00 2012
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
# CONFIG_SCSI_FUTURE_DOMAIN is not set
CONFIG_SCSI_GDTH=m
CONFIG_SCSI_ISCI=m
-# CONFIG_PBG_HBA_BETA is not set
-CONFIG_PBG_HBA_A2=y
-# CONFIG_PBG_HBA_A0 is not set
CONFIG_SCSI_IPS=m
CONFIG_SCSI_INITIO=m
# CONFIG_SCSI_INIA100 is not set
# USB Input Devices
#
CONFIG_USB_HID=y
+CONFIG_HIDRAW=y
CONFIG_USB_HIDINPUT=y
CONFIG_USB_HIDINPUT_POWERBOOK=y
CONFIG_HID_FF=y
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.18-prep
-# Thu Aug 11 21:03:59 2011
+# Sun Mar 18 11:05:23 2012
#
CONFIG_X86_64=y
CONFIG_64BIT=y
# CONFIG_SCSI_FUTURE_DOMAIN is not set
CONFIG_SCSI_GDTH=m
CONFIG_SCSI_ISCI=m
-# CONFIG_PBG_HBA_BETA is not set
-CONFIG_PBG_HBA_A2=y
-# CONFIG_PBG_HBA_A0 is not set
CONFIG_SCSI_IPS=m
CONFIG_SCSI_INITIO=m
# CONFIG_SCSI_INIA100 is not set
# USB Input Devices
#
CONFIG_USB_HID=y
+CONFIG_HIDRAW=y
CONFIG_USB_HIDINPUT=y
# CONFIG_USB_HIDINPUT_POWERBOOK is not set
CONFIG_HID_FF=y
/* is it possible for another commit to fail at roughly
* the same time as this one? If so, we don't want to
* trust the barrier flag in the super, but instead want
-@@ -164,15 +182,74 @@ static int journal_write_commit_record(j
+@@ -164,15 +182,76 @@ static int journal_write_commit_record(j
spin_unlock(&journal->j_state_lock);
/* And try again, without the barrier */
+ if (buffer_locked(bh)) {
+ spin_unlock(&journal->j_list_lock);
+ wait_on_buffer(bh);
-+ if (unlikely(!buffer_uptodate(bh)))
-+ ret = -EIO;
+ spin_lock(&journal->j_list_lock);
+ }
++ if (unlikely(!buffer_uptodate(bh)))
++ ret = -EIO;
+ if (!inverted_lock(journal, bh)) {
+ put_bh(bh);
+ spin_lock(&journal->j_list_lock);
+ continue;
+ }
-+ if (buffer_jbd(bh) && jh->b_jlist == BJ_Locked) {
++ if (buffer_jbd(bh) && bh2jh(bh) == jh &&
++ jh->b_transaction == commit_transaction &&
++ jh->b_jlist == BJ_Locked) {
+ __journal_unfile_buffer(jh);
+ jbd_unlock_bh_state(bh);
+ journal_remove_journal_head(bh);
+ } else {
+ jbd_unlock_bh_state(bh);
+ }
-+ put_bh(bh);
++ release_data_buffer(bh);
+ cond_resched_lock(&journal->j_list_lock);
+ }
+ return ret;
/*
* First job: lock down the current transaction and wait for
-@@ -444,39 +537,14 @@ void journal_commit_transaction(journal_
+@@ -446,41 +537,14 @@ void journal_commit_transaction(journal_
err = journal_submit_data_buffers(journal, commit_transaction);
/*
- spin_lock(&journal->j_list_lock);
- continue;
- }
-- if (buffer_jbd(bh) && jh->b_jlist == BJ_Locked) {
+- if (buffer_jbd(bh) && bh2jh(bh) == jh &&
+- jh->b_transaction == commit_transaction &&
+- jh->b_jlist == BJ_Locked) {
- __journal_unfile_buffer(jh);
- jbd_unlock_bh_state(bh);
- journal_remove_journal_head(bh);
switch(*bmc) {
case 0:
bitmap_file_set_bit(bitmap, offset);
-@@ -1169,7 +1185,7 @@ int bitmap_startwrite(struct bitmap *bit
- case 1:
- *bmc = 2;
- }
-- BUG_ON((*bmc & COUNTER_MAX) == COUNTER_MAX);
-+
- (*bmc)++;
-
- spin_unlock_irq(&bitmap->lock);
@@ -1207,6 +1223,9 @@ void bitmap_endwrite(struct bitmap *bitm
if (!success && ! (*bmc & NEEDED_MASK))
*bmc |= NEEDED_MASK;
(*bmc)--;
if (*bmc <= 2) {
set_page_attr(bitmap,
-@@ -1431,6 +1450,7 @@ int bitmap_create(mddev_t *mddev)
- spin_lock_init(&bitmap->lock);
- atomic_set(&bitmap->pending_writes, 0);
- init_waitqueue_head(&bitmap->write_wait);
-+ init_waitqueue_head(&bitmap->overflow_wait);
-
- bitmap->mddev = mddev;
-
diff .prev/include/linux/raid/bitmap.h ./include/linux/raid/bitmap.h
--- .prev/include/linux/raid/bitmap.h 2007-02-07 13:03:56.000000000 +1100
+++ ./include/linux/raid/bitmap.h 2007-02-07 20:57:57.000000000 +1100
#include <trace/mm.h>
#include "internal.h"
@@ -567,11 +568,55 @@
- if (!test_clear_page_writeback(page))
- BUG();
- }
+ if (!test_clear_page_writeback(page))
+ BUG();
+
+ clear_page_constant(page);
smp_mb__after_clear_bit();
wake_up_page(page, PG_writeback);
+void d_rehash_cond(struct dentry * entry, int lock)
{
- spin_lock(&dcache_lock);
-+ if (lock)
++ if (lock)
+ spin_lock(&dcache_lock);
spin_lock(&entry->d_lock);
_d_rehash(entry);
spin_unlock(&entry->d_lock);
- spin_unlock(&dcache_lock);
-+ if (lock)
++ if (lock)
+ spin_unlock(&dcache_lock);
+}
+EXPORT_SYMBOL(d_rehash_cond);
}
#define do_switch(x,y) do { \
-@@ -1481,7 +1496,7 @@ static void switch_names(struct dentry *
- * Update the dcache to reflect the move of a file name. Negative
- * dcache entries should not be moved in this way.
- */
--static void d_move_locked(struct dentry * dentry, struct dentry * target)
-+void d_move_locked(struct dentry * dentry, struct dentry * target)
- {
- struct hlist_head *list;
-
-@@ -1549,6 +1563,8 @@ already_unhashed:
+@@ -1481,6 +1496,14 @@ static void switch_names(struct dentry *
+ fsnotify_d_move(dentry);
spin_unlock(&dentry->d_lock);
- write_sequnlock(&rename_lock);
}
+
++void d_move_locked(struct dentry * dentry, struct dentry * target)
++{
++ write_seqlock(&rename_lock);
++ __d_move(dentry, target);
++ write_sequnlock(&rename_lock);
++}
+EXPORT_SYMBOL(d_move_locked);
/**
raid5-merge-ios-rhel5.patch
raid5-zerocopy-rhel5.patch
raid5-maxsectors-rhel5.patch
-raid5-rebuild-corrupt-bug.patch
md-rebuild-policy.patch
jbd-journal-chksum-2.6.18-vanilla.patch
quota-large-limits-rhel5.patch
mpt-fusion-max-sge.patch
jbd2-jcberr-2.6-rhel5.patch
jbd2-commit-timer-no-jiffies-rounding.diff
-md-avoid-bug_on-when-bmc-overflow.patch
-fix-forever-in-do_get_write_access.patch
lnxmaj="2.6.18"
-lnxrel="274.3.1.el5"
+lnxrel="308.1.1.el5"
KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm
SERIES=2.6-rhel5.series
SERIES VERSION COMMENT
SUPPORTED KERNELS:
-2.6-rhel5 RHEL5: 2.6.18-274.3.1.el5
+2.6-rhel5 RHEL5: 2.6.18-308.1.1.el5
CLIENT SUPPORT FOR UNPATCHED KERNELS:
kernel.org 2.6.16-2.6.32