[PATCH 4/4] block: pass a gendisk to bdev_resize_partition
From: Christoph Hellwig <hch@lst.de>
Date: 2021-08-10 15:51:33
Also in:
linux-efi, linux-s390
Subsystem:
block layer, the rest · Maintainers:
Jens Axboe, Linus Torvalds
bdev_resize_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> --- block/blk.h | 4 ++-- block/ioctl.c | 2 +- block/partitions/core.c | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/block/blk.h b/block/blk.h
index 21c441eb6773..db6f82bbb683 100644
--- a/block/blk.h
+++ b/block/blk.h@@ -350,8 +350,8 @@ void blk_free_ext_minor(unsigned int minor); int bdev_add_partition(struct gendisk *disk, int partno, sector_t start, sector_t length); 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); +int bdev_resize_partition(struct gendisk *disk, int partno, sector_t start, + sector_t length); int bio_add_hw_page(struct request_queue *q, struct bio *bio, struct page *page, unsigned int len, unsigned int offset,
diff --git a/block/ioctl.c b/block/ioctl.c
index 8f57b276b2f1..eb0491e90b9a 100644
--- a/block/ioctl.c
+++ b/block/ioctl.c@@ -43,7 +43,7 @@ static int blkpg_do_ioctl(struct block_device *bdev, return -EINVAL; return bdev_add_partition(disk, p.pno, start, length); case BLKPG_RESIZE_PARTITION: - return bdev_resize_partition(bdev, p.pno, start, length); + return bdev_resize_partition(disk, p.pno, start, length); default: return -EINVAL; }
diff --git a/block/partitions/core.c b/block/partitions/core.c
index 679bbe82a227..6462d983cb3a 100644
--- a/block/partitions/core.c
+++ b/block/partitions/core.c@@ -497,14 +497,14 @@ int bdev_del_partition(struct gendisk *disk, int partno) return ret; } -int bdev_resize_partition(struct block_device *bdev, int partno, - sector_t start, sector_t length) +int bdev_resize_partition(struct gendisk *disk, int partno, sector_t start, + sector_t length) { 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;
@@ -513,14 +513,14 @@ int bdev_resize_partition(struct block_device *bdev, int partno, goto out_unlock; ret = -EBUSY; - if (partition_overlaps(bdev->bd_disk, start, length, partno)) + if (partition_overlaps(disk, start, length, partno)) goto out_unlock; bdev_set_nr_sectors(part, length); ret = 0; out_unlock: - mutex_unlock(&bdev->bd_disk->open_mutex); + mutex_unlock(&disk->open_mutex); return ret; }
--
2.30.2