Mailing List Archive

[PATCH 34/78] block: propagate BLKROSET to all partitions
When setting the whole device read-only (or clearing the read-only
state), also update the policy for all partitions. The s390 dasd
driver has awlways been doing this and it makes a lot of sense.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
block/ioctl.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/block/ioctl.c b/block/ioctl.c
index 6b785181344fe1..22f394d118c302 100644
--- a/block/ioctl.c
+++ b/block/ioctl.c
@@ -354,7 +354,10 @@ static int blkdev_roset(struct block_device *bdev, fmode_t mode,
if (ret)
return ret;
}
- bdev->bd_part->policy = n;
+ if (bdev_is_partition(bdev))
+ bdev->bd_part->policy = n;
+ else
+ set_disk_ro(bdev->bd_disk, n);
return 0;
}

--
2.29.2
Re: [PATCH 34/78] block: propagate BLKROSET to all partitions [ In reply to ]
On 11/16/20 3:57 PM, Christoph Hellwig wrote:
> When setting the whole device read-only (or clearing the read-only
> state), also update the policy for all partitions. The s390 dasd
> driver has awlways been doing this and it makes a lot of sense.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> block/ioctl.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/block/ioctl.c b/block/ioctl.c
> index 6b785181344fe1..22f394d118c302 100644
> --- a/block/ioctl.c
> +++ b/block/ioctl.c
> @@ -354,7 +354,10 @@ static int blkdev_roset(struct block_device *bdev, fmode_t mode,
> if (ret)
> return ret;
> }
> - bdev->bd_part->policy = n;
> + if (bdev_is_partition(bdev))
> + bdev->bd_part->policy = n;
> + else
> + set_disk_ro(bdev->bd_disk, n);
> return 0;
> }
>
>
Reviewed-by: Hannes Reinecke <hare@suse.de>

Cheers,

Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@suse.de +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer