diff options
-rw-r--r-- | block/partitions/msdos.c | 11 |
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, §); | 455 | data = read_part_sector(state, 0, §); |
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 | ||