Update bdev properties on UDEV_CHANGE 97/157297/1
authorHyotaek Shim <hyotaek.shim@samsung.com>
Tue, 24 Oct 2017 06:23:52 +0000 (15:23 +0900)
committerHyotaek Shim <hyotaek.shim@samsung.com>
Tue, 24 Oct 2017 06:24:07 +0000 (15:24 +0900)
Change-Id: I0e701c3aee78f372a65d1286e5a6d286dc95c66d
Signed-off-by: Hyotaek Shim <hyotaek.shim@samsung.com>
src/block/block.c

index baacbc1..24a1540 100644 (file)
@@ -2703,6 +2703,25 @@ static void uevent_block_handler(struct udev_device *dev)
                add_block_device(dev, devnode, mapper);
        } else if (!strncmp(action, UDEV_REMOVE, sizeof(UDEV_REMOVE))) {
                remove_block_device(dev, devnode);
+       } else if (!strncmp(action, UDEV_CHANGE, sizeof(UDEV_CHANGE))) {
+               struct block_device *bdev;
+               bdev = find_block_device(devnode);
+               if (!bdev) {
+                       _E("fail to find block data for %s", devnode);
+                       return;
+               }
+               if (!udev_device_get_property_value(dev, "ID_FS_TYPE"))
+                       return;
+
+               r = update_block_data(bdev->data,
+                               udev_device_get_property_value(dev, "ID_FS_USAGE"),
+                               udev_device_get_property_value(dev, "ID_FS_TYPE"),
+                               udev_device_get_property_value(dev, "ID_FS_VERSION"),
+                               udev_device_get_property_value(dev, "ID_FS_UUID_ENC"),
+                               udev_device_get_sysattr_value(dev, "ro"),
+                               false);
+               if (r < 0)
+                       _E("fail to update block data for %s", bdev->data->devnode);
        }
 }