From b4fb2a61102a863be90353976c38d8096a42dc26 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Mon, 11 Mar 2013 15:51:22 +0100 Subject: [PATCH] fdisk: (bsd) support non-nested version too note that btrydev() should be unnecessary, regular list_table() should be enough for all types. Signed-off-by: Karel Zak --- fdisks/fdisk.c | 12 +++--------- fdisks/fdiskbsdlabel.c | 13 +++---------- libfdisk/src/context.c | 1 + 3 files changed, 7 insertions(+), 19 deletions(-) diff --git a/fdisks/fdisk.c b/fdisks/fdisk.c index 87fb191619..ade91a57c9 100644 --- a/fdisks/fdisk.c +++ b/fdisks/fdisk.c @@ -923,16 +923,10 @@ static void print_partition_table_from_option(struct fdisk_context *cxt, fdisk_override_geometry(cxt, user_cylinders, user_heads, user_sectors); - if (!fdisk_dev_has_disklabel(cxt)) { - /* - * Try BSD -- TODO: move to list_table() too - */ - list_disk_geometry(cxt); - if (!fdisk_is_disklabel(cxt, AIX) && - !fdisk_is_disklabel(cxt, MAC)) - btrydev(cxt); - } else + if (fdisk_dev_has_disklabel(cxt)) list_table(cxt, 0); + else + list_disk_geometry(cxt); } /* diff --git a/fdisks/fdiskbsdlabel.c b/fdisks/fdiskbsdlabel.c index c507338b01..baee4ef2c8 100644 --- a/fdisks/fdiskbsdlabel.c +++ b/fdisks/fdiskbsdlabel.c @@ -126,16 +126,6 @@ osf_probe_label(struct fdisk_context *cxt) return 1; } -int -btrydev (struct fdisk_context *cxt) -{ - if (xbsd_readlabel (cxt, NULL, &xbsd_dlabel) == 0) - return -1; - printf(_("\nBSD label for device: %s\n"), cxt->dev_path); - xbsd_print_disklabel (cxt, 0); - return 0; -} - #if !defined (__alpha__) static int hidden(int type) { @@ -864,6 +854,9 @@ xbsd_link_part (struct fdisk_context *cxt) int i; struct partition *p; + if (!cxt->parent) + return; /* not nested PT */ + if (fdisk_ask_partnum(cxt->parent, &k, FALSE)) return; diff --git a/libfdisk/src/context.c b/libfdisk/src/context.c index 139932620b..814d84c4f2 100644 --- a/libfdisk/src/context.c +++ b/libfdisk/src/context.c @@ -21,6 +21,7 @@ struct fdisk_context *fdisk_new_context(void) cxt->labels[ cxt->nlabels++ ] = fdisk_new_gpt_label(cxt); cxt->labels[ cxt->nlabels++ ] = fdisk_new_dos_label(cxt); cxt->labels[ cxt->nlabels++ ] = fdisk_new_aix_label(cxt); + cxt->labels[ cxt->nlabels++ ] = fdisk_new_bsd_label(cxt); cxt->labels[ cxt->nlabels++ ] = fdisk_new_mac_label(cxt); cxt->labels[ cxt->nlabels++ ] = fdisk_new_sgi_label(cxt); cxt->labels[ cxt->nlabels++ ] = fdisk_new_sun_label(cxt); -- 2.47.2