/usr/src/kernel-patches/lustre/patches/raid5-maxsectors-rhel5.patch is in linux-patch-lustre 1.8.5+dfsg-3ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | diff -ru linux-orig/drivers/md/raid5.c linux-new/drivers/md/raid5.c
--- linux-orig/drivers/md/raid5.c 2009-04-14 08:11:38.000000000 +1000
+++ linux-new/drivers/md/raid5.c 2009-09-20 05:02:02.000000000 +1000
@@ -3595,10 +3595,16 @@
mddev->array_size = mddev->size * (conf->previous_raid_disks -
conf->max_degraded);
+ int stripe_size = conf->chunk_size * (conf->previous_raid_disks - conf->max_degraded);
+
/* in order to support large I/Os */
- blk_queue_max_sectors(mddev->queue, conf->chunk_size * conf->previous_raid_disks >> 9);
- mddev->queue->max_phys_segments = conf->chunk_size * (conf->previous_raid_disks - conf->max_degraded) >> PAGE_SHIFT;
- mddev->queue->max_hw_segments = conf->chunk_size * conf->previous_raid_disks >> PAGE_SHIFT;;
+ blk_queue_max_sectors(mddev->queue, stripe_size >> 9);
+ /* KTVM: set default max_sectors the same as the max_hw_sectors set above */
+ mddev->queue->max_sectors = mddev->queue->max_hw_sectors;
+ printk("%s: setting max_sectors = %d, max_hw_sectors = %d\n", mdname(mddev), mddev->queue->max_sectors, mddev->queue->max_hw_sectors);
+
+ mddev->queue->max_phys_segments = stripe_size >> PAGE_SHIFT;
+ mddev->queue->max_hw_segments = stripe_size >> PAGE_SHIFT;;
/* raid5 device is able to do zcopy right now. */
mddev->queue->backing_dev_info.capabilities |= BDI_CAP_PAGE_CONSTANT_WRITE;
|