+This patch is no longer needed for Lustre. It is only included
+for testing and ease of using the same kernel with older Lustre
+versions. This testing functionality was replaced in Linux 3.0
+by the dm-flakey driver.
+
This functionality is mainly used during testing, in order to
simulate a server crash for ldiskfs by discarding all of the
writes to the filesystem. For recovery testing we could simulate
failure if the data is ever read from disk again and the
checksum does not match that expected by the block pointer.
-Initial efforts to remove this patch are under way in bug 20776.
-Once this work comes to fruition this patch can be dropped.
-
-Index: linux-2.6.32-71.18.1.el6-master/block/blk-core.c
+Index: linux-2.6.32-131.0.15.el6.x86_64/block/blk-core.c
===================================================================
---- linux-2.6.32-71.18.1.el6-master.orig/block/blk-core.c 2011-03-05 11:35:40.404043293 +0800
-+++ linux-2.6.32-71.18.1.el6-master/block/blk-core.c 2011-03-11 20:21:10.492302510 +0800
-@@ -1405,6 +1405,8 @@
+--- linux-2.6.32-131.0.15.el6.x86_64.orig/block/blk-core.c 2011-05-10 21:38:33.000000000 +0300
++++ linux-2.6.32-131.0.15.el6.x86_64/block/blk-core.c 2011-05-19 21:01:04.000000000 +0300
+@@ -1416,6 +1416,8 @@ static inline int should_fail_request(st
#endif /* CONFIG_FAIL_MAKE_REQUEST */
/*
* Check whether this bio extends beyond the end of the device.
*/
-@@ -1506,6 +1508,12 @@
+@@ -1517,6 +1519,12 @@ static inline void __generic_make_reques
if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags)))
goto end_io;
-+ /* This is Lustre's dev_rdonly check */
++ /* this is cfs's dev_rdonly check */
+ if (bio_rw(bio) == WRITE && dev_check_rdonly(bio->bi_bdev)) {
-+ bio_endio(bio, 0);
-+ break;
++ err = 0;
++ goto end_io;
+ }
+
if (should_fail_request(bio))
goto end_io;
-@@ -2578,6 +2586,99 @@
+@@ -2619,6 +2638,99 @@ int kblockd_schedule_work(struct request
}
EXPORT_SYMBOL(kblockd_schedule_work);
int __init blk_dev_init(void)
{
BUILD_BUG_ON(__REQ_NR_BITS > 8 *
-Index: linux-2.6.32-71.18.1.el6-master/fs/block_dev.c
+Index: linux-2.6.32-131.0.15.el6.x86_64/fs/block_dev.c
===================================================================
---- linux-2.6.32-71.18.1.el6-master.orig/fs/block_dev.c 2011-03-05 11:35:40.486042782 +0800
-+++ linux-2.6.32-71.18.1.el6-master/fs/block_dev.c 2011-03-05 11:37:35.624324775 +0800
-@@ -1389,6 +1389,7 @@
+--- linux-2.6.32-131.0.15.el6.x86_64.orig/fs/block_dev.c 2011-05-10 21:38:29.000000000 +0300
++++ linux-2.6.32-131.0.15.el6.x86_64/fs/block_dev.c 2011-05-19 21:01:04.000000000 +0300
+@@ -1389,6 +1389,7 @@ static int __blkdev_put(struct block_dev
if (bdev != bdev->bd_contains)
victim = bdev->bd_contains;
bdev->bd_contains = NULL;
}
unlock_kernel();
mutex_unlock(&bdev->bd_mutex);
-Index: linux-2.6.32-71.18.1.el6-master/include/linux/fs.h
+Index: linux-2.6.32-131.0.15.el6.x86_64/include/linux/fs.h
===================================================================
---- linux-2.6.32-71.18.1.el6-master.orig/include/linux/fs.h 2011-03-05 11:35:40.445043037 +0800
-+++ linux-2.6.32-71.18.1.el6-master/include/linux/fs.h 2011-03-05 11:37:35.726324137 +0800
-@@ -2204,6 +2204,10 @@
+--- linux-2.6.32-131.0.15.el6.x86_64.orig/include/linux/fs.h 2011-05-10 21:38:29.000000000 +0300
++++ linux-2.6.32-131.0.15.el6.x86_64/include/linux/fs.h 2011-05-19 21:01:04.000000000 +0300
+@@ -2244,6 +2244,10 @@ struct bio;
extern void submit_bio(int, struct bio *);
extern int bdev_read_only(struct block_device *);
#endif