[PATCH v4] mtd: super: don't rely on mtdblock device minor
Christoph Hellwig
hch at lst.de
Mon May 10 22:49:55 PDT 2021
On Mon, May 10, 2021 at 11:21:17PM +0100, Daniel Golle wrote:
> For blktrans devices with partitions (ie. part_bits != 0) the
> assumption that the minor number of the mtdblock device matches
> the mtdnum doesn't hold true.
> Properly resolve mtd device from blktrans layer instead.
Why are you changing the legacy lookup method that is clearly deprecated
in favor of the mdt* syntax?
> +
> + if (MAJOR(bdev->bd_dev) == MTD_BLOCK_MAJOR) {
> + if (!bdev->bd_disk)
> + goto error_mtdblock;
bdev->bd_disk can't be NULL.
>
> + blktrans_dev = (struct mtd_blktrans_dev *)(bdev->bd_disk->private_data);
Overly long line due to the not actually required cast.
But more importantly you can't just look at the private data of a random
block device that you just opened. There is absolutely no guarantee that
it actually points to a specific private data.
More information about the linux-mtd
mailing list