#define EXTENDED_INTERNAL_PATH "/run/extended-internal-sd"
#define PATH_LEN 55
-#define EXTENDEDSD_MOUNT_POINT "/opt/extendedsd"
+#define EXTENDEDSD_MOUNT_PATH "/opt/extendedsd"
#define EXTENDEDSD_STRING "ExtendedInternalSD"
#define EXT4_NAME "ext4"
BLOCK_DEV_FORMAT,
BLOCK_DEV_INSERT,
BLOCK_DEV_REMOVE,
+ BLOCK_LUKS_CLOSE,
};
enum private_operation_state {
ret = get_scsi_mount_node(name, node, sizeof(node));
break;
case BLOCK_EXTENDEDSD_DEV:
- return strdup(EXTENDEDSD_MOUNT_POINT);
+ return strdup(EXTENDEDSD_MOUNT_PATH);
default:
_E("Invalid block type (%d)", data->block_type);
return NULL;
_D("Unmount (%s) result:(%d)", devnode, ret);
break;
case BLOCK_DEV_REMOVE:
- if (!strncmp(bdev->data->fs_type, LUKS_NAME, strlen(LUKS_NAME))) {
- ret = ode_luks_close_sync(EXTENDEDSD_NAME);
- if (ret < 0)
- _E("Failed on ode_luks_close(%s)", EXTENDEDSD_NAME);
- }
+ /* Do nothing */
+ break;
+ case BLOCK_LUKS_CLOSE:
+ ret = ode_luks_close_sync(EXTENDEDSD_NAME);
+ if (ret < 0)
+ _E("Failed on ode_luks_close(%s)", EXTENDEDSD_NAME);
break;
default:
_E("Operation type is invalid (%d)", op->op);
return 0;
} else if (mapper && !strncmp(bdev->data->fs_type, EXT4_NAME, strlen(EXT4_NAME))) {
bdev->data->block_type = BLOCK_EXTENDEDSD_DEV;
- ret = change_mount_point(bdev, EXTENDEDSD_MOUNT_POINT);
+ ret = change_mount_point(bdev, EXTENDEDSD_MOUNT_PATH);
if (ret < 0) {
ret = -EPERM;
free_block_device(bdev);
}
if (!strncmp(bdev->data->fs_type, LUKS_NAME, strlen(LUKS_NAME))) {
- bdev_extended = find_block_device_path(EXTENDEDSD_MOUNT_POINT);
+ bdev_extended = find_block_device_path(EXTENDEDSD_MOUNT_PATH);
+
if (bdev_extended) {
BLOCK_FLAG_SET(bdev_extended->data, UNMOUNT_UNSAFE);
_E("Failed to add operation (remove %s)", devnode);
return ret;
}
+
+ ret = add_operation(bdev_extended, BLOCK_LUKS_CLOSE, NULL, NULL);
+ if (ret < 0) {
+ _E("Failed to add operation (luks_close %s)", devnode);
+ return ret;
+ }
} else
_E("fail to find block data for extended sd card");
}
goto out;
} else {
bdev->data->block_type = BLOCK_EXTENDEDSD_DEV;
- ret = change_mount_point(bdev, EXTENDEDSD_MOUNT_POINT);
+ ret = change_mount_point(bdev, EXTENDEDSD_MOUNT_PATH);
if (ret < 0) {
ret = -EPERM;
goto out;