diff options
author | Davidlohr Bueso | 2012-05-06 21:02:45 +0200 |
---|---|---|
committer | Karel Zak | 2012-05-10 11:35:42 +0200 |
commit | 0dc13a38631361394a098c5e9b39ca05a0cb36a7 (patch) | |
tree | f5a0d056adef75d092558036db7ac9ac135d01c4 /fdisk/fdisk.c | |
parent | fdisk: move DOS new/add partition code (diff) | |
download | kernel-qcow2-util-linux-0dc13a38631361394a098c5e9b39ca05a0cb36a7.tar.gz kernel-qcow2-util-linux-0dc13a38631361394a098c5e9b39ca05a0cb36a7.tar.xz kernel-qcow2-util-linux-0dc13a38631361394a098c5e9b39ca05a0cb36a7.zip |
fdisk: create DOS specific write table function
Signed-off-by: Davidlohr Bueso <dave@gnu.org>
Diffstat (limited to 'fdisk/fdisk.c')
-rw-r--r-- | fdisk/fdisk.c | 27 |
1 files changed, 4 insertions, 23 deletions
diff --git a/fdisk/fdisk.c b/fdisk/fdisk.c index 8c2a162cb..3044879aa 100644 --- a/fdisk/fdisk.c +++ b/fdisk/fdisk.c @@ -1672,31 +1672,12 @@ static void write_table(void) { int i; - if (disklabel == DOS_LABEL) { - /* MBR (primary partitions) */ - if (!MBRbuffer_changed) { - for (i = 0; i < 4; i++) - if (ptes[i].changed) - MBRbuffer_changed = 1; - } - if (MBRbuffer_changed) { - write_part_table_flag(MBRbuffer); - write_sector(fd, 0, MBRbuffer); - } - /* EBR (logical partitions) */ - for (i = 4; i < partitions; i++) { - struct pte *pe = &ptes[i]; - - if (pe->changed) { - write_part_table_flag(pe->sectorbuffer); - write_sector(fd, pe->offset, pe->sectorbuffer); - } - } - } - else if (disklabel == SGI_LABEL) { + if (disklabel == DOS_LABEL) + dos_write_table(); + else if (disklabel == SGI_LABEL) /* no test on change? the printf below might be mistaken */ sgi_write_table(); - } else if (disklabel == SUN_LABEL) { + else if (disklabel == SUN_LABEL) { int needw = 0; for (i=0; i<8; i++) |