[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