mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
fs/partition/msdos: fix unusable extended partition for > 512B sector
commit 8e0cc811e0 upstream.
Smaller size than a minimum blocksize can't be used, after all it's
handled like 0 size.
For extended partition itself, this makes sure to use bigger size than one
logical sector size at least.
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Cc: Daniel Taylor <Daniel.Taylor@wdc.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
1abac82345
commit
2a3046b3ac
@@ -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(" >");
|
||||
|
||||
Reference in New Issue
Block a user