#define SCSI_PATH "*/sd[a-z]*"
#define SCSI_PARTITION_PATH "sd[a-z][0-9]"
#define SCSI_PARTITION_LENGTH 9
-#define EXTENDEDSD_NODE_PATH "/dev/mapper/extendedsd*"
+#define EXTENDEDSD_NODE_PATH "/dev/mapper/extendedsd"
#define FILESYSTEM "filesystem"
return;
DD_LIST_FOREACH(block_ops_list, elem, ops) {
- if (ops->block_type != data->block_type)
+ int data_block_type = (data->block_type == BLOCK_EXTENDEDSD_DEV)
+ ? BLOCK_MMC_DEV : data->block_type;
+
+ if (ops->block_type != data_block_type)
continue;
// TODO What happend on extended internal storage case?
if (op == BLOCK_DEV_MOUNT) {
- if (data->block_type == BLOCK_EXTENDEDSD_DEV)
- ops->mounted(data, result, true);
- else
- ops->mounted(data, result, false);
+ ops->mounted(data, result, data->block_type == BLOCK_EXTENDEDSD_DEV);
} else if (op == BLOCK_DEV_UNMOUNT) {
- if (data->block_type == BLOCK_EXTENDEDSD_DEV)
- ops->unmounted(data, result, true);
- else
- ops->unmounted(data, result, false);
+ ops->unmounted(data, result, data->block_type == BLOCK_EXTENDEDSD_DEV);
} else if (op == BLOCK_DEV_FORMAT) {
- if (data->block_type == BLOCK_EXTENDEDSD_DEV)
- ops->formatted(data, result, true);
- else
- ops->formatted(data, result, false);
+ ops->formatted(data, result, data->block_type == BLOCK_EXTENDEDSD_DEV);
} else if (op == BLOCK_DEV_INSERT)
ops->inserted(data);
else if (op == BLOCK_DEV_REMOVE)
if (!r) return -ENODEV;
sprintf(syspath, "/sys/block%s", r);
+
data = make_block_data(devnode,
syspath,
FILESYSTEM,