diff --git a/lustre/ChangeLog b/lustre/ChangeLog
index 09be0432d723cd7ebb842a2d55b49855099e8615..acf8c590ebea5c5e761eaa856347903b9d442483 100644
--- a/lustre/ChangeLog
+++ b/lustre/ChangeLog
@@ -16,7 +16,7 @@ Severity   : normal
 Bugzilla   : 15069
 Description: don't put request into delay list while invalidate in flight.
 Details    : ptlrpc_delay_request sometimes put in delay list while invalidate
-             import in flight. this produce timeout for invalidate and sometimes
+	     import in flight. this produce timeout for invalidate and sometimes
 	     can cause stale data.
 
 Severity   : minor
@@ -528,10 +528,10 @@ Description: when mds and osts use different quota unit(32bit and 64bit),
 Details    : void sending multiple quota reqs to mds, which will keep the
 	     status between the reqs.
 
-Severity   : normal 
+Severity   : normal
 Bugzilla   : 13125
 Description: osts not allocated evenly to files
-Details    : change the condition to increase offset_idx 
+Details    : change the condition to increase offset_idx
 
 Severity   : critical
 Frequency  : Always for filesystems larger than 2TB on 32-bit systems.
@@ -880,8 +880,14 @@ Severity   : normal
 Bugzilla   : 15188
 Description: MDS deadlock with many ll_sync_lov threads and I/O stalled
 Details    : Use fsfilt_sync() for both the whole filesystem sync and
-             individual file sync to eliminate dangerous inode locking
-             with I_LOCK that can lead to a deadlock.
+	     individual file sync to eliminate dangerous inode locking
+	     with I_LOCK that can lead to a deadlock.
+
+Severity   : normal
+Bugzilla   : 14410
+Description: performance in 1.6.3
+Details    : Force q->max_phys_segments to MAX_PHYS_SEGMENTS on SLES10 to be
+	     sure that 1MB requests are not fragmented by the block layer.
 
 --------------------------------------------------------------------------------
 
diff --git a/lustre/kernel_patches/patches/blkdev_tunables-2.6-sles10.patch b/lustre/kernel_patches/patches/blkdev_tunables-2.6-sles10.patch
index a2d7da22a7d9feaff27fb39a57f8b1fc6ef639e6..5fbc8abf6d98ad364fc5f5eafc2a0e86c9ffc993 100644
--- a/lustre/kernel_patches/patches/blkdev_tunables-2.6-sles10.patch
+++ b/lustre/kernel_patches/patches/blkdev_tunables-2.6-sles10.patch
@@ -1,7 +1,7 @@
-Index: linux-2616-46014/include/scsi/scsi_host.h
+Index: linux-2.6.16.54-0.2.3/include/scsi/scsi_host.h
 ===================================================================
---- linux-2616-46014.orig/include/scsi/scsi_host.h
-+++ linux-2616-46014/include/scsi/scsi_host.h
+--- linux-2.6.16.54-0.2.3.orig/include/scsi/scsi_host.h
++++ linux-2.6.16.54-0.2.3/include/scsi/scsi_host.h
 @@ -28,7 +28,7 @@ struct scsi_transport_template;
   *	 used in one scatter-gather request.
   */
@@ -11,3 +11,15 @@ Index: linux-2616-46014/include/scsi/scsi_host.h
  
  
  #define DISABLE_CLUSTERING 0
+Index: linux-2.6.16.54-0.2.3/drivers/scsi/scsi_lib.c
+===================================================================
+--- linux-2.6.16.54-0.2.3.orig/drivers/scsi/scsi_lib.c
++++ linux-2.6.16.54-0.2.3/drivers/scsi/scsi_lib.c
+@@ -1573,6 +1573,7 @@ struct request_queue *scsi_alloc_queue(s
+ 
+ 	blk_queue_prep_rq(q, scsi_prep_fn);
+ 
++	blk_queue_max_phys_segments(q, SCSI_MAX_PHYS_SEGMENTS);
+ 	blk_queue_max_hw_segments(q, shost->sg_tablesize);
+ 	blk_queue_max_sectors(q, shost->max_sectors);
+ 	blk_queue_bounce_limit(q, scsi_calculate_bounce_limit(shost));