summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--init/devices.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/init/devices.cpp b/init/devices.cpp
index 9151f06..ba82f4f 100644
--- a/init/devices.cpp
+++ b/init/devices.cpp
@@ -487,10 +487,10 @@ static char **get_block_device_symlinks(struct uevent *uevent)
return NULL;
}
- char **links = (char**) malloc(sizeof(char *) * 4);
+ char **links = (char**) malloc(sizeof(char *) * 6);
if (!links)
return NULL;
- memset(links, 0, sizeof(char *) * 4);
+ memset(links, 0, sizeof(char *) * 6);
INFO("found %s device %s\n", type, device);
@@ -505,6 +505,11 @@ static char **get_block_device_symlinks(struct uevent *uevent)
link_num++;
else
links[link_num] = NULL;
+ if (asprintf(&links[link_num], "/dev/block/bootdevice/by-name/%s", p) > 0)
+ link_num++;
+ else
+ links[link_num] = NULL;
+
free(p);
}
@@ -513,6 +518,11 @@ static char **get_block_device_symlinks(struct uevent *uevent)
link_num++;
else
links[link_num] = NULL;
+
+ if (asprintf(&links[link_num], "/dev/block/bootdevice/by-num/p%d", uevent->partition_num) > 0)
+ link_num++;
+ else
+ links[link_num] = NULL;
}
slash = strrchr(uevent->path, '/');