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);
}
}