_D("Unmount (%s) result:(%d)", devnode, ret);
break;
case BLOCK_DEV_REMOVE:
- /* Do nothing */
+ 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);
+ }
break;
default:
_E("Operation type is invalid (%d)", op->op);
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), '/'));
+ char *r;
+
+ r = rindex(udev_device_get_syspath(dev), '/');
+ if (!r) return -ENODEV;
+
+ sprintf(syspath, "/sys/block%s", r);
data = make_block_data(devnode,
syspath,
FILESYSTEM,
_E("Failed to add operation (remove %s)", devnode);
return ret;
}
-
- ret = ode_luks_close(EXTENDEDSD_NAME);
- if (ret < 0) {
- _E("Failed on ode_luks_close(%s)", EXTENDEDSD_NAME);
- return ret;
- }
} else
_E("fail to find block data for extended sd card");
}