[PATCH] dm: Implement set_read_only

From: Łukasz Patron
Date: Wed Aug 21 2024 - 17:31:37 EST


This lets us change the read-only flag for device mapper block devices
via the BLKROSET ioctl.

Signed-off-by: Łukasz Patron <priv.luk@xxxxxxxxx>
---
drivers/md/dm.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 87bb90303435..538a93e596d7 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -410,6 +410,12 @@ static int dm_blk_getgeo(struct block_device *bdev, struct hd_geometry *geo)
return dm_get_geometry(md, geo);
}

+static int dm_blk_set_read_only(struct block_device *bdev, bool ro)
+{
+ set_disk_ro(bdev->bd_disk, ro);
+ return 0;
+}
+
static int dm_prepare_ioctl(struct mapped_device *md, int *srcu_idx,
struct block_device **bdev)
{
@@ -3666,6 +3672,7 @@ static const struct block_device_operations dm_blk_dops = {
.release = dm_blk_close,
.ioctl = dm_blk_ioctl,
.getgeo = dm_blk_getgeo,
+ .set_read_only = dm_blk_set_read_only,
.report_zones = dm_blk_report_zones,
.pr_ops = &dm_pr_ops,
.owner = THIS_MODULE
--
2.46.0