We need to skip useless gaps between partition if the gap is no large
enough for a new partition. Unfortunately, the current code checks
size of the gap, but does not care for location of the gap -- this is
good enough for dialog driven partitioning, but it's pretty bad if
start of the partition is explicitly specified (e.g. sfdisk).
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=
1860461
Signed-off-by: Karel Zak <kzak@redhat.com>
fdisk_sector_t last;
rc = find_last_free(cxt, is_logical, start, limit, &last);
-
if (rc == 0 && last - start + 1 < fdisk_partition_get_size(pa)) {
DBG(LABEL, ul_debug("DOS: area <%ju,%ju> too small [wanted=%ju aval=%ju]",
(uintmax_t) start, (uintmax_t) last,
fdisk_partition_get_size(pa),
last - start));
- if (fdisk_partition_has_start(pa))
+ if (fdisk_partition_has_start(pa)
+ && fdisk_partition_get_start(pa) <= last)
rc = -ENOSPC;
else {
start = last + 1;