[PATCH 34/78] block: propagate BLKROSET to all partitions

Christoph Hellwig
2020-11-16T15:05:34Z

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;