OSDN Git Service

mtd_blkdevs: don't scan partitions for plain mtdblock
authorChristoph Hellwig <hch@lst.de>
Mon, 6 Dec 2021 07:04:09 +0000 (08:04 +0100)
committerJens Axboe <axboe@kernel.dk>
Sun, 12 Dec 2021 19:19:10 +0000 (12:19 -0700)
mtdblock / mtdblock_ro set part_bits to 0 and thus nevever scanned
partitions.  Restore that behavior by setting the GENHD_FL_NO_PART flag.

Fixes: 1ebe2e5f9d68e94c ("block: remove GENHD_FL_EXT_DEVT")
Reported-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20211206070409.2836165-1-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/mtd/mtd_blkdevs.c

index 113f86d..243f28a 100644 (file)
@@ -346,7 +346,7 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
        gd->minors = 1 << tr->part_bits;
        gd->fops = &mtd_block_ops;
 
-       if (tr->part_bits)
+       if (tr->part_bits) {
                if (new->devnum < 26)
                        snprintf(gd->disk_name, sizeof(gd->disk_name),
                                 "%s%c", tr->name, 'a' + new->devnum);
@@ -355,9 +355,11 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
                                 "%s%c%c", tr->name,
                                 'a' - 1 + new->devnum / 26,
                                 'a' + new->devnum % 26);
-       else
+       } else {
                snprintf(gd->disk_name, sizeof(gd->disk_name),
                         "%s%d", tr->name, new->devnum);
+               gd->flags |= GENHD_FL_NO_PART;
+       }
 
        set_capacity(gd, ((u64)new->size * tr->blksize) >> 9);