You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.5 KiB
48 lines
1.5 KiB
Subject: [PATCH] libparted: mklabel to support EDEV DASD |
|
|
|
From: Nageswara R Sastry <rnsastry@linux.vnet.ibm.com> |
|
|
|
Fixed Block Access (FBA) DASDs are mainframe-specific disk devices |
|
which are layed out as a sequence of 512-byte sectors. This patch adds |
|
support for mklabel to properly handle FBA devices. |
|
|
|
Signed-off-by: Nageswara R Sastry <rnsastry@linux.vnet.ibm.com> |
|
--- |
|
libparted/labels/fdasd.c | 24 +++++++++++++----------- |
|
1 file changed, 13 insertions(+), 11 deletions(-) |
|
|
|
--- a/libparted/labels/fdasd.c |
|
+++ b/libparted/labels/fdasd.c |
|
@@ -869,19 +869,21 @@ fdasd_check_volume (fdasd_anchor_t *anc, |
|
vtoc_read_volume_label (fd, anc->label_pos, v); |
|
|
|
if (strncmp(v->vollbl, vtoc_ebcdic_enc ("VOL1", str, 4), 4) == 0) { |
|
- /* found VOL1 volume label */ |
|
- b = (cchhb2blk (&v->vtoc, &anc->geo) - 1) * anc->blksize; |
|
+ if (anc->FBA_layout != 1 ) { |
|
+ /* found VOL1 volume label */ |
|
+ b = (cchhb2blk (&v->vtoc, &anc->geo) - 1) * anc->blksize; |
|
|
|
- if (b > 0) { |
|
- int rc; |
|
- rc = fdasd_valid_vtoc_pointer (anc, b, fd); |
|
+ if (b > 0) { |
|
+ int rc; |
|
+ rc = fdasd_valid_vtoc_pointer (anc, b, fd); |
|
|
|
- if (rc < 0) |
|
- return 1; |
|
- else |
|
- return 0; |
|
- } else { |
|
- fdasd_invalid_vtoc_pointer(anc); |
|
+ if (rc < 0) |
|
+ return 1; |
|
+ else |
|
+ return 0; |
|
+ } else { |
|
+ fdasd_invalid_vtoc_pointer(anc); |
|
+ } |
|
} |
|
} else if (strncmp (v->volkey, vtoc_ebcdic_enc ("LNX1", str, 4), 4) == 0 || |
|
strncmp (v->volkey, vtoc_ebcdic_enc ("CMS1", str, 4), 4) == 0) {
|
|
|