diff options
-rw-r--r-- | libfdisk/src/context.c | 2 | ||||
-rw-r--r-- | libfdisk/src/sun.c | 5 | ||||
-rw-r--r-- | libfdisk/src/table.c | 2 |
3 files changed, 8 insertions, 1 deletions
diff --git a/libfdisk/src/context.c b/libfdisk/src/context.c index 95d17acde..ee9c40ea6 100644 --- a/libfdisk/src/context.c +++ b/libfdisk/src/context.c @@ -301,6 +301,8 @@ int __fdisk_switch_label(struct fdisk_context *cxt, struct fdisk_label *lb) } cxt->label = lb; DBG(CXT, ul_debugobj(cxt, "--> switching context to %s!", lb->name)); + + fdisk_apply_label_device_properties(cxt); return 0; } diff --git a/libfdisk/src/sun.c b/libfdisk/src/sun.c index a247dbcf5..7257081f3 100644 --- a/libfdisk/src/sun.c +++ b/libfdisk/src/sun.c @@ -507,6 +507,8 @@ static int sun_add_partition( size_t i; unsigned int first, last; + DBG(LABEL, ul_debug("SUN adding partition")); + rc = fdisk_partition_next_partno(pa, cxt, &n); if (rc) return rc; @@ -704,6 +706,8 @@ static int sun_add_partition( if (whole_disk) sys = SUN_TAG_WHOLEDISK; + DBG(LABEL, ul_debug("SUN new partition #%zu: first=%u, last=%u, sys=%d", n, first, last, sys)); + set_partition(cxt, n, first, last, sys); cxt->label->nparts_cur = count_used_partitions(cxt); if (partno) @@ -1088,6 +1092,7 @@ static int sun_set_partition( static int sun_reset_alignment(struct fdisk_context *cxt __attribute__((__unused__))) { + fdisk_set_first_lba(cxt, 0); return 0; } diff --git a/libfdisk/src/table.c b/libfdisk/src/table.c index c5ad382ca..4881db68e 100644 --- a/libfdisk/src/table.c +++ b/libfdisk/src/table.c @@ -411,7 +411,7 @@ static int new_freespace(struct fdisk_context *cxt, if (start == end) return 0; - assert(start); + assert(start >= cxt->first_lba); assert(end); assert(end > start); |