[Pkg-lustre-svn-commit] updated: [cce630e] Adapted kernel patches from rhel6 series file
Marco Nelles
marco.nelles at credativ.de
Fri Jun 15 10:11:30 UTC 2012
The following commit has been merged in the master branch:
commit cce630ef97fe8cadafb30edf777e1d3b6140d974
Author: Marco Nelles <marco.nelles at credativ.de>
Date: Tue Jun 12 13:36:32 2012 +0200
Adapted kernel patches from rhel6 series file
diff --git a/debian/linux-patch-lustre.kpatches b/debian/linux-patch-lustre.kpatches
deleted file mode 100644
index 0bf1ef0..0000000
--- a/debian/linux-patch-lustre.kpatches
+++ /dev/null
@@ -1,13 +0,0 @@
-Patch-name: Lustre Filesystem patch for the Linux kernel
-Patch-id: lustre
-Architecture: amd64, ia64, i386, powerpc
-Path-strip-level: 1
-
-Patch-file: debian/kpatches/patch-vanilla-2.6.18
-Kernel-version: 2.6.18
-
-Patch-file: debian/kpatches/patch-vanilla-2.6.20
-Kernel-version: 2.6.20
-
-Patch-file: debian/kpatches/patch-vanilla-2.6.21
-Kernel-version: 2.6.21
diff --git a/debian/rules b/debian/rules
index 1d982ce..1f5b0cb 100755
--- a/debian/rules
+++ b/debian/rules
@@ -101,7 +101,6 @@ binary-$(PATCH_PKG): patch-stamp
dh_testroot
dh_installdirs -p $(PATCH_PKG)
dh_installdocs -p $(PATCH_PKG)
-# dh_installkpatches -p $(PATCH_PKG)
dh_install -p $(PATCH_PKG)
# Install apply script
diff --git a/lustre/kernel_patches/patches/bh_lru_size_config.patch b/lustre/kernel_patches/patches/bh_lru_size_config-2.6.32-vanilla.patch
similarity index 95%
copy from lustre/kernel_patches/patches/bh_lru_size_config.patch
copy to lustre/kernel_patches/patches/bh_lru_size_config-2.6.32-vanilla.patch
index e84edba..d35d935 100644
--- a/lustre/kernel_patches/patches/bh_lru_size_config.patch
+++ b/lustre/kernel_patches/patches/bh_lru_size_config-2.6.32-vanilla.patch
@@ -1,6 +1,6 @@
--- linux-2.6.32-131.6.1/fs/buffer.c
+++ linux-2.6.32-131.6.1-pdo/fs/buffer.c
-@@ -1250,8 +1250,7 @@
+@@ -1249,8 +1249,7 @@
* The LRUs themselves only need locking against invalidate_bh_lrus. We use
* a local interrupt disable for that.
*/
@@ -12,7 +12,7 @@
struct buffer_head *bhs[BH_LRU_SIZE];
--- linux-2.6.32-131.6.1/fs/Kconfig
+++ linux-2.6.32-131.6.1-pdo/fs/Kconfig
-@@ -253,4 +253,13 @@
+@@ -254,4 +254,13 @@
source "fs/nls/Kconfig"
source "fs/dlm/Kconfig"
diff --git a/lustre/kernel_patches/patches/blkdev_tunables-2.6.32-vanilla.patch b/lustre/kernel_patches/patches/blkdev_tunables-2.6.32-vanilla.patch
new file mode 100644
index 0000000..179c8ff
--- /dev/null
+++ b/lustre/kernel_patches/patches/blkdev_tunables-2.6.32-vanilla.patch
@@ -0,0 +1,30 @@
+diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
+index 09beade..0970f13 100644
+--- a/include/linux/blkdev.h
++++ b/include/linux/blkdev.h
+@@ -1027,10 +1027,10 @@ static inline int sb_issue_discard(struct super_block *sb,
+
+ extern int blk_verify_command(unsigned char *cmd, fmode_t has_write_perm);
+
+-#define MAX_PHYS_SEGMENTS 128
++#define MAX_PHYS_SEGMENTS 256
+ #define MAX_HW_SEGMENTS 128
+ #define SAFE_MAX_SECTORS 255
+-#define BLK_DEF_MAX_SECTORS 1024
++#define BLK_DEF_MAX 2048
+
+ #define MAX_SEGMENT_SIZE 65536
+
+diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h
+index 8b4deca..d8c12a4 100644
+--- a/include/scsi/scsi.h
++++ b/include/scsi/scsi.h
+@@ -19,7 +19,7 @@ struct scsi_cmnd;
+ * to SG_MAX_SINGLE_ALLOC to pack correctly at the highest order. The
+ * minimum value is 32
+ */
+-#define SCSI_MAX_SG_SEGMENTS 128
++#define SCSI_MAX_SG_SEGMENTS 256
+
+ /*
+ * Like SCSI_MAX_SG_SEGMENTS, but for archs that have sg chaining. This limit
diff --git a/lustre/kernel_patches/patches/dev_read_only-2.6.27-vanilla.patch b/lustre/kernel_patches/patches/dev_read_only-2.6.32-vanilla.patch
similarity index 54%
copy from lustre/kernel_patches/patches/dev_read_only-2.6.27-vanilla.patch
copy to lustre/kernel_patches/patches/dev_read_only-2.6.32-vanilla.patch
index de7804d..54d2647 100644
--- a/lustre/kernel_patches/patches/dev_read_only-2.6.27-vanilla.patch
+++ b/lustre/kernel_patches/patches/dev_read_only-2.6.32-vanilla.patch
@@ -1,8 +1,8 @@
-Index: linux-2.6.27.21-0.1/block/blk-core.c
-===================================================================
---- linux-2.6.27.21-0.1.orig/block/blk-core.c 2009-04-23 02:12:51.000000000 -0600
-+++ linux-2.6.27.21-0.1/block/blk-core.c 2009-05-22 08:38:02.000000000 -0600
-@@ -1335,6 +1335,8 @@
+diff --git a/block/blk-core.c b/block/blk-core.c
+index cffd737..fab10d7 100644
+--- a/block/blk-core.c
++++ b/block/blk-core.c
+@@ -1350,6 +1350,8 @@ static inline int should_fail_request(struct bio *bio)
#endif /* CONFIG_FAIL_MAKE_REQUEST */
@@ -11,46 +11,50 @@ Index: linux-2.6.27.21-0.1/block/blk-core.c
/*
* Check whether this bio extends beyond the end of the device.
*/
-@@ -1436,6 +1438,12 @@
-
+@@ -1451,6 +1453,13 @@ static inline void __generic_make_request(struct bio *bio)
if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags)))
goto end_io;
-
-+ /* this is cfs's dev_rdonly check */
-+ if (bio_rw(bio) == WRITE && dev_check_rdonly(bio->bi_bdev)) {
-+ bio_endio(bio, bio->bi_size, 0);
-+ break;
-+ }
+
++ /* this is cfs's dev_rdonly check */
++ if (bio_rw(bio) == WRITE && dev_check_rdonly(bio->bi_bdev)) {
++ err = 0;
++ goto end_io;
++ }
++
+
if (should_fail_request(bio))
goto end_io;
-@@ -2189,6 +2197,91 @@
+
+@@ -2494,6 +2503,99 @@ int kblockd_schedule_work(struct request_queue *q, struct work_struct *work)
}
- EXPORT_SYMBOL(kblockd_flush_work);
+ EXPORT_SYMBOL(kblockd_schedule_work);
-+ /*
-+ * Debug code for turning block devices "read-only" (will discard writes
-+ * silently). This is for filesystem crash/recovery testing.
-+ */
++/*
++* Debug code for turning block devices "read-only" (will discard writes
++* silently). This is for filesystem crash/recovery testing.
++*/
+struct deventry {
+ dev_t dev;
+ struct deventry *next;
+};
+
+static struct deventry *devlist = NULL;
-+static spinlock_t devlock = SPIN_LOCK_UNLOCKED;
++static spinlock_t devlock = SPIN_LOCK_UNLOCKED;
+
-+int dev_check_rdonly(struct block_device *bdev)
++int dev_check_rdonly(struct block_device *bdev)
+{
+ struct deventry *cur;
-+ if (!bdev) return 0;
++
++ if (!bdev)
++ return 0;
++
+ spin_lock(&devlock);
+ cur = devlist;
+ while(cur) {
+ if (bdev->bd_dev == cur->dev) {
+ spin_unlock(&devlock);
+ return 1;
-+ }
++ }
+ cur = cur->next;
+ }
+ spin_unlock(&devlock);
@@ -60,11 +64,12 @@ Index: linux-2.6.27.21-0.1/block/blk-core.c
+void dev_set_rdonly(struct block_device *bdev)
+{
+ struct deventry *newdev, *cur;
-+
-+ if (!bdev)
++
++ if (!bdev)
+ return;
++
+ newdev = kmalloc(sizeof(struct deventry), GFP_KERNEL);
-+ if (!newdev)
++ if (!newdev)
+ return;
+
+ spin_lock(&devlock);
@@ -82,26 +87,29 @@ Index: linux-2.6.27.21-0.1/block/blk-core.c
+ devlist = newdev;
+ spin_unlock(&devlock);
+ printk(KERN_WARNING "Turning device %s (%#x) read-only\n",
-+ bdev->bd_disk ? bdev->bd_disk->disk_name : "", bdev->bd_dev);
++ bdev->bd_disk ? bdev->bd_disk->disk_name : "", bdev->bd_dev);
+}
+
-+void dev_clear_rdonly(struct block_device *bdev)
-+{
++void dev_clear_rdonly(struct block_device *bdev) {
+ struct deventry *cur, *last = NULL;
-+ if (!bdev) return;
++
++ if (!bdev)
++ return;
++
+ spin_lock(&devlock);
+ cur = devlist;
+ while(cur) {
+ if (bdev->bd_dev == cur->dev) {
-+ if (last)
++ if (last)
+ last->next = cur->next;
+ else
+ devlist = cur->next;
+ spin_unlock(&devlock);
+ kfree(cur);
+ printk(KERN_WARNING "Removing read-only on %s (%#x)\n",
-+ bdev->bd_disk ? bdev->bd_disk->disk_name :
-+ "unknown block", bdev->bd_dev);
++ bdev->bd_disk ? bdev->bd_disk->disk_name :
++ "unknown block",
++ bdev->bd_dev);
+ return;
+ }
+ last = cur;
@@ -113,14 +121,15 @@ Index: linux-2.6.27.21-0.1/block/blk-core.c
+EXPORT_SYMBOL(dev_set_rdonly);
+EXPORT_SYMBOL(dev_clear_rdonly);
+EXPORT_SYMBOL(dev_check_rdonly);
++
int __init blk_dev_init(void)
{
- kblockd_workqueue = create_workqueue("kblockd");
-Index: linux-2.6.27.21-0.1/fs/block_dev.c
-===================================================================
---- linux-2.6.27.21-0.1.orig/fs/block_dev.c 2009-04-23 02:12:56.000000000 -0600
-+++ linux-2.6.27.21-0.1/fs/block_dev.c 2009-05-22 08:38:02.000000000 -0600
-@@ -1208,6 +1208,7 @@
+ BUILD_BUG_ON(__REQ_NR_BITS > 8 *
+diff --git a/fs/block_dev.c b/fs/block_dev.c
+index e65efa2..cc3e14e 100644
+--- a/fs/block_dev.c
++++ b/fs/block_dev.c
+@@ -1373,6 +1373,7 @@ static int __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part)
if (bdev != bdev->bd_contains)
victim = bdev->bd_contains;
bdev->bd_contains = NULL;
@@ -128,18 +137,18 @@ Index: linux-2.6.27.21-0.1/fs/block_dev.c
}
unlock_kernel();
mutex_unlock(&bdev->bd_mutex);
-Index: linux-2.6.27.21-0.1/include/linux/fs.h
-===================================================================
---- linux-2.6.27.21-0.1.orig/include/linux/fs.h 2009-05-22 08:38:00.000000000 -0600
-+++ linux-2.6.27.21-0.1/include/linux/fs.h 2009-05-22 08:38:02.000000000 -0600
-@@ -1898,6 +1898,10 @@
+diff --git a/include/linux/fs.h b/include/linux/fs.h
+index 50b86a3..8e6a168 100644
+--- a/include/linux/fs.h
++++ b/include/linux/fs.h
+@@ -2204,6 +2204,10 @@ struct bio;
extern void submit_bio(int, struct bio *);
extern int bdev_read_only(struct block_device *);
#endif
+#define HAVE_CLEAR_RDONLY_ON_PUT
+extern void dev_set_rdonly(struct block_device *bdev);
+extern int dev_check_rdonly(struct block_device *bdev);
-+extern void dev_clear_rdonly(struct block_device *bdev);
++extern void dev_clear_rdonly(struct block_device *bdev)
extern int set_blocksize(struct block_device *, int);
extern int sb_set_blocksize(struct super_block *, int);
extern int sb_min_blocksize(struct super_block *, int);
diff --git a/lustre/kernel_patches/patches/jbd2-jcberr-2.6-rhel6.patch b/lustre/kernel_patches/patches/jbd2-jcberr-2.6.32-vanilla.patch
similarity index 97%
copy from lustre/kernel_patches/patches/jbd2-jcberr-2.6-rhel6.patch
copy to lustre/kernel_patches/patches/jbd2-jcberr-2.6.32-vanilla.patch
index 310957b..ed41849 100644
--- a/lustre/kernel_patches/patches/jbd2-jcberr-2.6-rhel6.patch
+++ b/lustre/kernel_patches/patches/jbd2-jcberr-2.6.32-vanilla.patch
@@ -73,7 +73,7 @@ Index: linux+rh+chaos/include/linux/jbd2.h
*/
struct transaction_s
-@@ -659,6 +690,16 @@ struct transaction_s
+@@ -660,6 +691,16 @@ struct transaction_s
* structures associated with the transaction
*/
struct list_head t_private_list;
@@ -90,7 +90,7 @@ Index: linux+rh+chaos/include/linux/jbd2.h
};
struct transaction_run_stats_s {
-@@ -1115,6 +1156,9 @@ extern int jbd2_journal_stop(handle_t *
+@@ -1116,6 +1157,9 @@ extern int jbd2_journal_stop(handle_t *
extern int jbd2_journal_flush (journal_t *);
extern void jbd2_journal_lock_updates (journal_t *);
extern void jbd2_journal_unlock_updates (journal_t *);
@@ -104,7 +104,7 @@ Index: linux+rh+chaos/fs/jbd2/checkpoint.c
===================================================================
--- linux+rh+chaos.orig/fs/jbd2/checkpoint.c
+++ linux+rh+chaos/fs/jbd2/checkpoint.c
-@@ -759,6 +759,7 @@ void __jbd2_journal_drop_transaction(jou
+@@ -774,6 +774,7 @@ void __jbd2_journal_drop_transaction(jou
J_ASSERT(transaction->t_checkpoint_list == NULL);
J_ASSERT(transaction->t_checkpoint_io_list == NULL);
J_ASSERT(transaction->t_updates == 0);
@@ -116,7 +116,7 @@ Index: linux+rh+chaos/fs/jbd2/commit.c
===================================================================
--- linux+rh+chaos.orig/fs/jbd2/commit.c
+++ linux+rh+chaos/fs/jbd2/commit.c
-@@ -857,6 +857,30 @@ wait_for_iobuf:
+@@ -860,6 +860,30 @@ wait_for_iobuf:
transaction can be removed from any checkpoint list it was on
before. */
diff --git a/lustre/kernel_patches/patches/mpt-fusion-max-sge-rhel6.patch b/lustre/kernel_patches/patches/mpt-fusion-max-sge-2.6.32-vanilla.patch
similarity index 100%
copy from lustre/kernel_patches/patches/mpt-fusion-max-sge-rhel6.patch
copy to lustre/kernel_patches/patches/mpt-fusion-max-sge-2.6.32-vanilla.patch
diff --git a/lustre/kernel_patches/patches/raid5-mmp-unplug-dev-2.6.32-vanilla.patch b/lustre/kernel_patches/patches/raid5-mmp-unplug-dev-2.6.32-vanilla.patch
new file mode 100644
index 0000000..05f92c8
--- /dev/null
+++ b/lustre/kernel_patches/patches/raid5-mmp-unplug-dev-2.6.32-vanilla.patch
@@ -0,0 +1,24 @@
+diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
+index 883215d..4f27b2a 100644
+--- a/drivers/md/raid5.c
++++ b/drivers/md/raid5.c
+@@ -2097,6 +2097,8 @@ static int add_stripe_bio(struct stripe_head *sh, struct bio *bi, int dd_idx, in
+ bi->bi_next = *bip;
+ *bip = bi;
+ bi->bi_phys_segments++;
++ if (bio_rw_flagged(bi, BIO_RW_SYNCIO) && !forwrite)
++ clear_bit(R5_UPTODATE, &sh->dev[dd_idx].flags); /* force to read from disk. */
+ spin_unlock_irq(&conf->device_lock);
+ spin_unlock(&sh->lock);
+
+@@ -4013,6 +4015,10 @@ static int make_request(struct request_queue *q, struct bio * bi)
+
+ bio_endio(bi, 0);
+ }
++
++ if (bio_rw_flagged(bi, BIO_RW_SYNCIO))
++ md_raid5_unplug_device(conf);
++
+ return 0;
+ }
+
diff --git a/lustre/kernel_patches/patches/vfs_races-2.6.32-vanilla.patch b/lustre/kernel_patches/patches/vfs_races-2.6.32-vanilla.patch
new file mode 100644
index 0000000..4cd09d1
--- /dev/null
+++ b/lustre/kernel_patches/patches/vfs_races-2.6.32-vanilla.patch
@@ -0,0 +1,31 @@
+diff --git a/fs/dcache.c b/fs/dcache.c
+index 44c0aea..bcd33da 100644
+--- a/fs/dcache.c
++++ b/fs/dcache.c
+@@ -280,6 +280,13 @@ int d_invalidate(struct dentry * dentry)
+ spin_unlock(&dcache_lock);
+ return 0;
+ }
++
++ /* network invalidation by Lustre */
++ if (dentry->d_flags & DCACHE_LUSTRE_INVALID) {
++ spin_unlock(&dcache_lock);
++ return 0;
++ }
++
+ /*
+ * Check whether to do a partial shrink_dcache
+ * to get rid of unused child entries.
+diff --git a/include/linux/dcache.h b/include/linux/dcache.h
+index 30b93b2..6ae16f9 100644
+--- a/include/linux/dcache.h
++++ b/include/linux/dcache.h
+@@ -186,6 +186,8 @@ d_iput: no no no yes
+
+ #define DCACHE_FSNOTIFY_PARENT_WATCHED 0x0080 /* Parent inode is watched by some fsnotify listener */
+
++#define DCACHE_LUSTRE_INVALID 0x4000000 /* Lustre invalidated */
++
+ extern spinlock_t dcache_lock;
+ extern seqlock_t rename_lock;
+
diff --git a/lustre/kernel_patches/series/2.6.32-vanilla.series b/lustre/kernel_patches/series/2.6.32-vanilla.series
new file mode 100644
index 0000000..339372d
--- /dev/null
+++ b/lustre/kernel_patches/series/2.6.32-vanilla.series
@@ -0,0 +1,9 @@
+lustre_version.patch
+mpt-fusion-max-sge-2.6.32-vanilla.patch
+raid5-mmp-unplug-dev-2.6.32-vanilla.patch
+vfs_races-2.6.32-vanilla.patch
+dev_read_only-2.6.32-vanilla.patch
+blkdev_tunables-2.6.32-vanilla.patch
+export-2.6.32-vanilla.patch
+jbd2-jcberr-2.6.32-vanilla.patch
+bh_lru_size_config-2.6.32-vanilla.patch
--
Lustre Debian Packaging
More information about the Pkg-lustre-svn-commit
mailing list