1 From: Hannes Reinecke <hare@suse.de>
2 Subject: Send uevents for write_protect changes
5 Whenever a block device changes it's read-only attribute
6 we should notify the userspace about it.
8 Signed-off-by: Hannes Reinecke <hare@suse.de>
11 block/genhd.c | 13 +++++++++++++
12 1 file changed, 13 insertions(+)
16 @@ -813,6 +813,16 @@ void put_disk(struct gendisk *disk)
18 EXPORT_SYMBOL(put_disk);
20 +static void set_disk_ro_uevent(struct gendisk *gd, int ro)
22 + char event[] = "DISK_RO=1";
23 + char *envp[] = { event, NULL };
27 + kobject_uevent_env(&gd->dev.kobj, KOBJ_CHANGE, envp);
30 void set_device_ro(struct block_device *bdev, int flag)
32 if (bdev->bd_contains != bdev)
33 @@ -826,6 +836,9 @@ EXPORT_SYMBOL(set_device_ro);
34 void set_disk_ro(struct gendisk *disk, int flag)
37 + if (disk->policy != flag)
38 + set_disk_ro_uevent(disk, flag);
41 for (i = 0; i < disk->minors - 1; i++)
42 if (disk->part[i]) disk->part[i]->policy = flag;