The Atari floppy driver usually autodetects the media when used with theReviewed-by: Hannes Reinecke <hare@xxxxxxx>
ormal /dev/fd? devices, which also are the only nodes created by udev.
But it also supports various aliases that force a given media format.
That is currently supported using the blk_register_region framework
which finds the floppy gendisk even for a 'mismatched' dev_t. The
problem with this (besides the code complexity) is that it creates
multiple struct block_device instances for the whole device of a
single gendisk, which can lead to interesting issues in code not
aware of that fact.
To fix this just create a separate gendisk for each of the aliases
if they are accessed.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
---
drivers/block/ataflop.c | 135 +++++++++++++++++++++++++---------------
1 file changed, 86 insertions(+), 49 deletions(-)