if (!data)
return -EINVAL;
- udev = udev_new();
- if (!udev) {
- _E("fail to create udev library context");
- return -EPERM;
- }
+ for (wait = 0; wait < 10; wait++) {
+ udev = udev_new();
+ if (!udev) {
+ _E("fail to create udev library context");
+ return -EPERM;
+ }
- dev = udev_device_new_from_syspath(udev, data->syspath);
- if (!dev) {
- _E("fail to create new udev device");
- udev_unref(udev);
- return -EPERM;
- }
+ dev = udev_device_new_from_syspath(udev, data->syspath);
+ if (!dev) {
+ _E("fail to create new udev device");
+ udev_unref(udev);
+ return -EPERM;
+ }
- for (wait = 0; wait < 3; wait++) {
if (!udev_device_get_property_value(dev, "ID_FS_TYPE"))
sleep(1);
else
break;
+
+ udev_device_unref(dev);
+ udev_unref(udev);
}
r = update_block_data(data,
}
if (mapper && !udev_device_get_property_value(dev, "ID_FS_TYPE")) {
+ char syspath[128] = {0};
+ sprintf(syspath, "/sys/block%s", rindex(udev_device_get_syspath(dev), '/'));
data = make_block_data(devnode,
- udev_device_get_syspath(dev),
+ syspath,
FILESYSTEM,
EXT4_NAME,
"1.0",
if (need_format) {
struct format_data *fdata;
- fdata = get_format_data(NULL, 1, false);
+ fdata = get_format_data(NULL, 1, true);
if (!fdata) {
_E("Failed to get format data");
return -ENOMEM;