+ /* try to resolve the silly block layout if needed */
+ if (strncmp(&path[len], "/block/", 7) == 0) {
+ char block[UTIL_PATH_SIZE];
+ char part[UTIL_PATH_SIZE];
+
+ util_strlcpy(block, path, sizeof(block));
+ pos = strrchr(block, '/');
+ if (pos == NULL)
+ return NULL;
+ util_strlcpy(part, pos, sizeof(part));
+ pos[0] = '\0';
+ if (util_resolve_sys_link(udev, block, sizeof(block)) == 0) {
+ util_strlcpy(path, block, sizeof(path));
+ util_strlcat(path, part, sizeof(path));
+ }
+ }
+