- patches.suse/genhd-disk-ro-uevents: Send uevents for
authorHannes Reinecke <hare@suse.de>
Thu, 4 Dec 2008 13:18:08 +0000 (14:18 +0100)
committerHannes Reinecke <hare@suse.de>
Thu, 4 Dec 2008 13:18:08 +0000 (14:18 +0100)
  write_protect changes (bnc#440959).

suse-commit: 9cc64b20bb3dff6f8ba8b1224c6c27bcf7e7bda4

block/genhd.c

index 61deb06..af2e093 100644 (file)
@@ -847,6 +847,16 @@ void put_disk(struct gendisk *disk)
 
 EXPORT_SYMBOL(put_disk);
 
+static void set_disk_ro_uevent(struct gendisk *gd, int ro)
+{
+       char event[] = "DISK_RO=1";
+       char *envp[] = { event, NULL };
+
+       if (!ro)
+               event[9] = '0';
+       kobject_uevent_env(&gd->dev.kobj, KOBJ_CHANGE, envp);
+}
+
 void set_device_ro(struct block_device *bdev, int flag)
 {
        if (bdev->bd_contains != bdev)
@@ -860,6 +870,9 @@ EXPORT_SYMBOL(set_device_ro);
 void set_disk_ro(struct gendisk *disk, int flag)
 {
        int i;
+       if (disk->policy != flag)
+               set_disk_ro_uevent(disk, flag);
+
        disk->policy = flag;
        for (i = 0; i < disk->minors - 1; i++)
                if (disk->part[i]) disk->part[i]->policy = flag;