Blame SOURCES/parted-3.1-libparted-mklabel-edev.patch

fc4a62
Subject: [PATCH] libparted: mklabel to support EDEV DASD
fc4a62
fc4a62
From: Nageswara R Sastry <rnsastry@linux.vnet.ibm.com>
fc4a62
fc4a62
Fixed Block Access (FBA) DASDs are mainframe-specific disk devices
fc4a62
which are layed out as a sequence of 512-byte sectors. This patch adds
fc4a62
support for mklabel to properly handle FBA devices.
fc4a62
fc4a62
Signed-off-by: Nageswara R Sastry <rnsastry@linux.vnet.ibm.com>
fc4a62
---
fc4a62
 libparted/labels/fdasd.c |   24 +++++++++++++-----------
fc4a62
 1 file changed, 13 insertions(+), 11 deletions(-)
fc4a62
fc4a62
--- a/libparted/labels/fdasd.c
fc4a62
+++ b/libparted/labels/fdasd.c
fc4a62
@@ -869,19 +869,21 @@ fdasd_check_volume (fdasd_anchor_t *anc,
fc4a62
 	vtoc_read_volume_label (fd, anc->label_pos, v);
fc4a62
 
fc4a62
 	if (strncmp(v->vollbl, vtoc_ebcdic_enc ("VOL1", str, 4), 4) == 0) {
fc4a62
-		/* found VOL1 volume label */
fc4a62
-		b = (cchhb2blk (&v->vtoc, &anc->geo) - 1) * anc->blksize;
fc4a62
+		if (anc->FBA_layout != 1 ) {
fc4a62
+			/* found VOL1 volume label */
fc4a62
+			b = (cchhb2blk (&v->vtoc, &anc->geo) - 1) * anc->blksize;
fc4a62
 
fc4a62
-		if (b > 0) {
fc4a62
-			int rc;
fc4a62
-			rc = fdasd_valid_vtoc_pointer (anc, b, fd);
fc4a62
+			if (b > 0) {
fc4a62
+				int rc;
fc4a62
+				rc = fdasd_valid_vtoc_pointer (anc, b, fd);
fc4a62
 
fc4a62
-			if (rc < 0)
fc4a62
-				return 1;
fc4a62
-			else
fc4a62
-				return 0;
fc4a62
-		} else {
fc4a62
-			fdasd_invalid_vtoc_pointer(anc);
fc4a62
+				if (rc < 0)
fc4a62
+					return 1;
fc4a62
+				else
fc4a62
+					return 0;
fc4a62
+			} else {
fc4a62
+				fdasd_invalid_vtoc_pointer(anc);
fc4a62
+			}
fc4a62
 		}
fc4a62
 	} else if (strncmp (v->volkey, vtoc_ebcdic_enc ("LNX1", str, 4), 4) == 0 ||
fc4a62
 	           strncmp (v->volkey, vtoc_ebcdic_enc ("CMS1", str, 4), 4) == 0) {