struct block_device *bdev;
char *fs_type;
enum unmount_operation option;
+ bool udev_update;
};
struct pipe_data {
static int format_block_device(struct block_device *bdev,
const char *fs_type,
- enum unmount_operation option)
+ enum unmount_operation option, bool udev_update)
{
struct block_data *data;
int r;
}
}
- r = block_format(data, fs_type, bdev->mount_point_updated, false);
+ r = block_format(data, fs_type, bdev->mount_point_updated, udev_update);
if (r < 0)
_E("fail to format %s device : %d", data->devnode, r);
}
static struct format_data *get_format_data(
- const char *fs_type, enum unmount_operation option)
+ const char *fs_type, enum unmount_operation option, bool udev_update)
{
struct format_data *fdata;
else
fdata->fs_type = NULL;
fdata->option = option;
+ fdata->udev_update = udev_update;
return fdata;
}
goto out;
}
- ret = format_block_device(bdev, fdata->fs_type, fdata->option);
+ ret = format_block_device(bdev, fdata->fs_type, fdata->option, fdata->udev_update);
if (ret < 0)
_E("fail to mount block device for %s", bdev->data->devnode);
pthread_mutex_unlock(&(th_manager[thread_id].mutex));
if (need_format) {
- ret = block_format(bdev->data, EXT4_NAME, false, false);
+ struct format_data *fdata;
+
+ fdata = get_format_data(NULL, 1, false);
+ if (!fdata) {
+ _E("Failed to get format data");
+ return -ENOMEM;
+ }
+
+ ret = add_operation(bdev, BLOCK_DEV_FORMAT, NULL, (void *)fdata);
if (ret < 0) {
_E("Failed to add operation (format %s)", bdev->data->devnode);
+ release_format_data(fdata);
}
}
goto out;
}
- fdata = get_format_data(NULL, option);
+ fdata = get_format_data(NULL, option, true);
if (!fdata) {
_E("Failed to get format data");
goto out;
goto out;
}
- fdata = get_format_data(type, option);
+ fdata = get_format_data(type, option, true);
if (!fdata) {
_E("Failed to get format data");
goto out;