block: pass a gendisk to bdev_del_partition
authorChristoph Hellwig <hch@lst.de>
Tue, 10 Aug 2021 15:45:11 +0000 (17:45 +0200)
committerJens Axboe <axboe@kernel.dk>
Thu, 12 Aug 2021 16:31:35 +0000 (10:31 -0600)
bdev_del_partition can only operate on the whole device.  Make that clear
by passing a gendisk instead of a block_device.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20210810154512.1809898-4-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk.h
block/ioctl.c
block/partitions/core.c

index c0486f6..21c441e 100644 (file)
@@ -349,7 +349,7 @@ void blk_free_ext_minor(unsigned int minor);
 #define ADDPART_FLAG_WHOLEDISK 2
 int bdev_add_partition(struct gendisk *disk, int partno, sector_t start,
                sector_t length);
-int bdev_del_partition(struct block_device *bdev, int partno);
+int bdev_del_partition(struct gendisk *disk, int partno);
 int bdev_resize_partition(struct block_device *bdev, int partno,
                sector_t start, sector_t length);
 
index 36e0ec7..8f57b27 100644 (file)
@@ -31,7 +31,7 @@ static int blkpg_do_ioctl(struct block_device *bdev,
                return -EINVAL;
 
        if (op == BLKPG_DEL_PARTITION)
-               return bdev_del_partition(bdev, p.pno);
+               return bdev_del_partition(disk, p.pno);
 
        start = p.start >> SECTOR_SHIFT;
        length = p.length >> SECTOR_SHIFT;
index 7b227c1..8c7abf0 100644 (file)
@@ -476,13 +476,13 @@ out:
        return ret;
 }
 
-int bdev_del_partition(struct block_device *bdev, int partno)
+int bdev_del_partition(struct gendisk *disk, int partno)
 {
        struct block_device *part = NULL;
        int ret = -ENXIO;
 
-       mutex_lock(&bdev->bd_disk->open_mutex);
-       part = xa_load(&bdev->bd_disk->part_tbl, partno);
+       mutex_lock(&disk->open_mutex);
+       part = xa_load(&disk->part_tbl, partno);
        if (!part)
                goto out_unlock;
 
@@ -493,7 +493,7 @@ int bdev_del_partition(struct block_device *bdev, int partno)
        delete_partition(part);
        ret = 0;
 out_unlock:
-       mutex_unlock(&bdev->bd_disk->open_mutex);
+       mutex_unlock(&disk->open_mutex);
        return ret;
 }