Re: [PATCH v2 16/34] s390: port block device access to file

Jan Kara
2024-02-01T10:11:38Z

On Tue 23-01-24 14:26:33, Christian Brauner wrote:
> Signed-off-by: Christian Brauner <brauner@kernel.org>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

Honza

> ---
> drivers/s390/block/dasd.c | 10 +++++-----
> drivers/s390/block/dasd_genhd.c | 36 ++++++++++++++++++------------------
> drivers/s390/block/dasd_int.h | 2 +-
> drivers/s390/block/dasd_ioctl.c | 2 +-
> 4 files changed, 25 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
> index 7327e81352e9..c833a7c7d7b2 100644
> --- a/drivers/s390/block/dasd.c
> +++ b/drivers/s390/block/dasd.c
> @@ -412,7 +412,7 @@ dasd_state_ready_to_online(struct dasd_device * device)
> KOBJ_CHANGE);
> return 0;
> }
> - disk_uevent(device->block->bdev_handle->bdev->bd_disk,
> + disk_uevent(file_bdev(device->block->bdev_file)->bd_disk,
> KOBJ_CHANGE);
> }
> return 0;
> @@ -433,7 +433,7 @@ static int dasd_state_online_to_ready(struct dasd_device *device)
>
> device->state = DASD_STATE_READY;
> if (device->block && !(device->features & DASD_FEATURE_USERAW))
> - disk_uevent(device->block->bdev_handle->bdev->bd_disk,
> + disk_uevent(file_bdev(device->block->bdev_file)->bd_disk,
> KOBJ_CHANGE);
> return 0;
> }
> @@ -3588,7 +3588,7 @@ int dasd_generic_set_offline(struct ccw_device *cdev)
> * in the other openers.
> */
> if (device->block) {
> - max_count = device->block->bdev_handle ? 0 : -1;
> + max_count = device->block->bdev_file ? 0 : -1;
> open_count = atomic_read(&device->block->open_count);
> if (open_count > max_count) {
> if (open_count > 0)
> @@ -3634,8 +3634,8 @@ int dasd_generic_set_offline(struct ccw_device *cdev)
> * so sync bdev first and then wait for our queues to become
> * empty
> */
> - if (device->block && device->block->bdev_handle)
> - bdev_mark_dead(device->block->bdev_handle->bdev, false);
> + if (device->block && device->block->bdev_file)
> + bdev_mark_dead(file_bdev(device->block->bdev_file), false);
> dasd_schedule_device_bh(device);
> rc = wait_event_interruptible(shutdown_waitq,
> _wait_for_empty_queues(device));
> diff --git a/drivers/s390/block/dasd_genhd.c b/drivers/s390/block/dasd_genhd.c
> index 55e3abe94cde..8bf2cf0ccc15 100644
> --- a/drivers/s390/block/dasd_genhd.c
> +++ b/drivers/s390/block/dasd_genhd.c
> @@ -127,15 +127,15 @@ void dasd_gendisk_free(struct dasd_block *block)
> */
> int dasd_scan_partitions(struct dasd_block *block)
> {
> - struct bdev_handle *bdev_handle;
> + struct file *bdev_file;
> int rc;
>
> - bdev_handle = bdev_open_by_dev(disk_devt(block->gdp), BLK_OPEN_READ,
> + bdev_file = bdev_file_open_by_dev(disk_devt(block->gdp), BLK_OPEN_READ,
> NULL, NULL);
> - if (IS_ERR(bdev_handle)) {
> + if (IS_ERR(bdev_file)) {
> DBF_DEV_EVENT(DBF_ERR, block->base,
> "scan partitions error, blkdev_get returned %ld",
> - PTR_ERR(bdev_handle));
> + PTR_ERR(bdev_file));
> return -ENODEV;
> }
>
> @@ -147,15 +147,15 @@ int dasd_scan_partitions(struct dasd_block *block)
> "scan partitions error, rc %d", rc);
>
> /*
> - * Since the matching bdev_release() call to the
> - * bdev_open_by_path() in this function is not called before
> + * Since the matching fput() call to the
> + * bdev_file_open_by_path() in this function is not called before
> * dasd_destroy_partitions the offline open_count limit needs to be
> - * increased from 0 to 1. This is done by setting device->bdev_handle
> + * increased from 0 to 1. This is done by setting device->bdev_file
> * (see dasd_generic_set_offline). As long as the partition detection
> * is running no offline should be allowed. That is why the assignment
> - * to block->bdev_handle is done AFTER the BLKRRPART ioctl.
> + * to block->bdev_file is done AFTER the BLKRRPART ioctl.
> */
> - block->bdev_handle = bdev_handle;
> + block->bdev_file = bdev_file;
> return 0;
> }
>
> @@ -165,21 +165,21 @@ int dasd_scan_partitions(struct dasd_block *block)
> */
> void dasd_destroy_partitions(struct dasd_block *block)
> {
> - struct bdev_handle *bdev_handle;
> + struct file *bdev_file;
>
> /*
> - * Get the bdev_handle pointer from the device structure and clear
> - * device->bdev_handle to lower the offline open_count limit again.
> + * Get the bdev_file pointer from the device structure and clear
> + * device->bdev_file to lower the offline open_count limit again.
> */
> - bdev_handle = block->bdev_handle;
> - block->bdev_handle = NULL;
> + bdev_file = block->bdev_file;
> + block->bdev_file = NULL;
>
> - mutex_lock(&bdev_handle->bdev->bd_disk->open_mutex);
> - bdev_disk_changed(bdev_handle->bdev->bd_disk, true);
> - mutex_unlock(&bdev_handle->bdev->bd_disk->open_mutex);
> + mutex_lock(&file_bdev(bdev_file)->bd_disk->open_mutex);
> + bdev_disk_changed(file_bdev(bdev_file)->bd_disk, true);
> + mutex_unlock(&file_bdev(bdev_file)->bd_disk->open_mutex);
>
> /* Matching blkdev_put to the blkdev_get in dasd_scan_partitions. */
> - bdev_release(bdev_handle);
> + fput(bdev_file);
> }
>
> int dasd_gendisk_init(void)
> diff --git a/drivers/s390/block/dasd_int.h b/drivers/s390/block/dasd_int.h
> index 1b1b8a41c4d4..aecd502aec51 100644
> --- a/drivers/s390/block/dasd_int.h
> +++ b/drivers/s390/block/dasd_int.h
> @@ -650,7 +650,7 @@ struct dasd_block {
> struct gendisk *gdp;
> spinlock_t request_queue_lock;
> struct blk_mq_tag_set tag_set;
> - struct bdev_handle *bdev_handle;
> + struct file *bdev_file;
> atomic_t open_count;
>
> unsigned long blocks; /* size of volume in blocks */
> diff --git a/drivers/s390/block/dasd_ioctl.c b/drivers/s390/block/dasd_ioctl.c
> index 61b9675e2a67..de85a5e4e21b 100644
> --- a/drivers/s390/block/dasd_ioctl.c
> +++ b/drivers/s390/block/dasd_ioctl.c
> @@ -537,7 +537,7 @@ static int __dasd_ioctl_information(struct dasd_block *block,
> * This must be hidden from user-space.
> */
> dasd_info->open_count = atomic_read(&block->open_count);
> - if (!block->bdev_handle)
> + if (!block->bdev_file)
> dasd_info->open_count++;
>
> /*
>
> --
> 2.43.0
>
--
Jan Kara <jack@suse.com>
SUSE Labs, CR