diff options
author | Karel Zak | 2015-04-13 10:29:00 +0200 |
---|---|---|
committer | Karel Zak | 2015-04-13 10:29:00 +0200 |
commit | 4d156d92eb538f9dbc077a2dd181a48d8fdc65cd (patch) | |
tree | 56250450ae3a4428aabdb3f085302ca008869845 /libfdisk/src/dos.c | |
parent | libfdisk: recognize FAT32 partitions hidden by Acronis software (diff) | |
download | kernel-qcow2-util-linux-4d156d92eb538f9dbc077a2dd181a48d8fdc65cd.tar.gz kernel-qcow2-util-linux-4d156d92eb538f9dbc077a2dd181a48d8fdc65cd.tar.xz kernel-qcow2-util-linux-4d156d92eb538f9dbc077a2dd181a48d8fdc65cd.zip |
libfdisk: (dos) retain existing boot flag when resizing a partition
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1210912
Signed-off-by: Karel Zak <kzak@redhat.com>
Co-Author: awilliam@redhat.com
Diffstat (limited to 'libfdisk/src/dos.c')
-rw-r--r-- | libfdisk/src/dos.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libfdisk/src/dos.c b/libfdisk/src/dos.c index dce9829eb..6468071ff 100644 --- a/libfdisk/src/dos.c +++ b/libfdisk/src/dos.c @@ -1221,7 +1221,7 @@ static int add_partition(struct fdisk_context *cxt, size_t n, } } - set_partition(cxt, n, 0, start, stop, sys, pa && pa->boot == 1 ? 1 : 0); + set_partition(cxt, n, 0, start, stop, sys, fdisk_partition_is_bootable(pa)); if (n > 4) { struct pte *pe = self_pte(cxt, n); set_partition(cxt, n - 1, 1, pe->offset, stop, @@ -1963,13 +1963,15 @@ static int dos_set_partition(struct fdisk_context *cxt, size_t n, set_partition(cxt, n, 0, start, start + size - 1, pa->type ? pa->type->code : p->sys_ind, - pa->boot == 1); + FDISK_IS_UNDEF(pa->boot) ? + p->boot_ind == ACTIVE_FLAG : + fdisk_partition_is_bootable(pa)); } else { DBG(LABEL, ul_debug("DOS: keep size, modify properties")); if (pa->type) p->sys_ind = pa->type->code; if (!FDISK_IS_UNDEF(pa->boot)) - p->boot_ind = pa->boot == 1 ? ACTIVE_FLAG : 0; + p->boot_ind = fdisk_partition_is_bootable(pa) ? ACTIVE_FLAG : 0; } partition_set_changed(cxt, n, 1); |