[kernel] r16110 - in dists/sid/linux-2.6/debian: . patches/bugfix/s390 patches/series

Ben Hutchings benh at alioth.debian.org
Sun Aug 8 23:28:08 UTC 2010


Author: benh
Date: Sun Aug  8 23:28:04 2010
New Revision: 16110

Log:
[s390] dasd: use correct label location for diag fba disks (Closes: #582281)

Added:
   dists/sid/linux-2.6/debian/patches/bugfix/s390/dasd-use-correct-label-location-for-diag-fba-disks.patch
Modified:
   dists/sid/linux-2.6/debian/changelog
   dists/sid/linux-2.6/debian/patches/series/20

Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog	Sun Aug  8 23:16:48 2010	(r16109)
+++ dists/sid/linux-2.6/debian/changelog	Sun Aug  8 23:28:04 2010	(r16110)
@@ -15,6 +15,8 @@
   * [i386/openvz-686] Remove AMD Geode LX and VIA C3 "Nehemiah" from the
     list of supported processors; they do not implement PAE
   * V4L/DVB: Add Elgato EyeTV Diversity to dibcom driver (Closes: #591710)
+  * [s390] dasd: use correct label location for diag fba disks
+    (Closes: #582281)
 	
  -- Ben Hutchings <ben at decadent.org.uk>  Fri, 06 Aug 2010 01:39:38 +0100
 

Added: dists/sid/linux-2.6/debian/patches/bugfix/s390/dasd-use-correct-label-location-for-diag-fba-disks.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/s390/dasd-use-correct-label-location-for-diag-fba-disks.patch	Sun Aug  8 23:28:04 2010	(r16110)
@@ -0,0 +1,66 @@
+From df12aa28eb11ec64887a6a2b834d8fe3f0b68e2c Mon Sep 17 00:00:00 2001
+From: Peter Oberparleiter <peter.oberparleiter at de.ibm.com>
+Date: Mon, 19 Jul 2010 09:22:35 +0200
+Subject: [PATCH] [S390] dasd: use correct label location for diag fba disks
+
+commit cffab6bc5511cd6f67a60bf16b62de4267b68c4c upstream.
+
+Partition boundary calculation fails for DASD FBA disks under the
+following conditions:
+- disk is formatted with CMS FORMAT with a blocksize of more than
+  512 bytes
+- all of the disk is reserved to a single CMS file using CMS RESERVE
+- the disk is accessed using the DIAG mode of the DASD driver
+
+Under these circumstances, the partition detection code tries to
+read the CMS label block containing partition-relevant information
+from logical block offset 1, while it is in fact located at physical
+block offset 1.
+
+Fix this problem by using the correct CMS label block location
+depending on the device type as determined by the DASD SENSE ID
+information.
+
+Signed-off-by: Peter Oberparleiter <peter.oberparleiter at de.ibm.com>
+Signed-off-by: Martin Schwidefsky <schwidefsky at de.ibm.com>
+[bwh: Adjust for 2.6.32]
+---
+ fs/partitions/ibm.c |   13 ++++++++++++-
+ 1 files changed, 12 insertions(+), 1 deletions(-)
+
+diff --git a/fs/partitions/ibm.c b/fs/partitions/ibm.c
+index fc71aab..bae725b 100644
+--- a/fs/partitions/ibm.c
++++ b/fs/partitions/ibm.c
+@@ -74,6 +74,7 @@ ibm_partition(struct parsed_partitions *state, struct block_device *bdev)
+ 	} *label;
+ 	unsigned char *data;
+ 	Sector sect;
++	sector_t labelsect;
+ 
+ 	res = 0;
+ 	blocksize = bdev_logical_block_size(bdev);
+@@ -98,9 +99,19 @@ ibm_partition(struct parsed_partitions *state, struct block_device *bdev)
+ 		goto out_freeall;
+ 
+ 	/*
++	 * Special case for FBA disks: label sector does not depend on
++	 * blocksize.
++	 */
++	if ((info->cu_type == 0x6310 && info->dev_type == 0x9336) ||
++	    (info->cu_type == 0x3880 && info->dev_type == 0x3370))
++		labelsect = info->label_block;
++	else
++		labelsect = info->label_block * (blocksize >> 9);
++
++	/*
+ 	 * Get volume label, extract name and type.
+ 	 */
+-	data = read_dev_sector(bdev, info->label_block*(blocksize/512), &sect);
++	data = read_dev_sector(bdev, labelsect, &sect);
+ 	if (data == NULL)
+ 		goto out_readerr;
+ 
+-- 
+1.7.1
+

Modified: dists/sid/linux-2.6/debian/patches/series/20
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/20	Sun Aug  8 23:16:48 2010	(r16109)
+++ dists/sid/linux-2.6/debian/patches/series/20	Sun Aug  8 23:28:04 2010	(r16110)
@@ -8,3 +8,4 @@
 + bugfix/all/stable/2.6.32.18-rc1.patch
 + debian/ssb-Avoid-ABI-change-in-2.6.32.17.patch
 + features/all/V4L-DVB-Add-Elgato-EyeTV-Diversity-to-dibcom-driver.patch
++ bugfix/s390/dasd-use-correct-label-location-for-diag-fba-disks.patch



More information about the Kernel-svn-changes mailing list