libfdisk: allow to start freespace for zero
This is necessary for disk labels like SUN where whole disk is possible to address by partitions. Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
f7606d2d9f
commit
9c76f85f9a
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue