aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--block/partitions/msdos.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/block/partitions/msdos.c b/block/partitions/msdos.c
index 8752a5d26565..7681cd295ab8 100644
--- a/block/partitions/msdos.c
+++ b/block/partitions/msdos.c
@@ -455,14 +455,19 @@ int msdos_partition(struct parsed_partitions *state)
455 data = read_part_sector(state, 0, &sect); 455 data = read_part_sector(state, 0, &sect);
456 if (!data) 456 if (!data)
457 return -1; 457 return -1;
458 if (!msdos_magic_present(data + 510)) { 458
459 /*
460 * Note order! (some AIX disks, e.g. unbootable kind,
461 * have no MSDOS 55aa)
462 */
463 if (aix_magic_present(state, data)) {
459 put_dev_sector(sect); 464 put_dev_sector(sect);
465 strlcat(state->pp_buf, " [AIX]", PAGE_SIZE);
460 return 0; 466 return 0;
461 } 467 }
462 468
463 if (aix_magic_present(state, data)) { 469 if (!msdos_magic_present(data + 510)) {
464 put_dev_sector(sect); 470 put_dev_sector(sect);
465 strlcat(state->pp_buf, " [AIX]", PAGE_SIZE);
466 return 0; 471 return 0;
467 } 472 }
468 473