|
@@ -492,9 +492,16 @@ int msdos_partition(struct parsed_partitions *state, struct block_device *bdev)
|
|
|
if (!size)
|
|
|
continue;
|
|
|
if (is_extended_partition(p)) {
|
|
|
- /* prevent someone doing mkfs or mkswap on an
|
|
|
- extended partition, but leave room for LILO */
|
|
|
- put_partition(state, slot, start, size == 1 ? 1 : 2);
|
|
|
+ /*
|
|
|
+ * prevent someone doing mkfs or mkswap on an
|
|
|
+ * extended partition, but leave room for LILO
|
|
|
+ * FIXME: this uses one logical sector for > 512b
|
|
|
+ * sector, although it may not be enough/proper.
|
|
|
+ */
|
|
|
+ sector_t n = 2;
|
|
|
+ n = min(size, max(sector_size, n));
|
|
|
+ put_partition(state, slot, start, n);
|
|
|
+
|
|
|
printk(" <");
|
|
|
parse_extended(state, bdev, start, size);
|
|
|
printk(" >");
|