--- mdadm-3.0.orig/platform-intel.c 2009-06-02 07:48:29.000000000 +0200 +++ mdadm-3.0/platform-intel.c 2009-09-02 19:30:09.000000000 +0200 @@ -47,6 +47,7 @@ struct sys_dev *find_driver_devices(cons char path[256]; char link[256]; char *c; + char *rpath; DIR *driver_dir; struct dirent *de; struct sys_dev *head = NULL; @@ -87,7 +88,9 @@ struct sys_dev *find_driver_devices(cons /* generate canonical path name for the device */ sprintf(path, "/sys/bus/%s/drivers/%s/%s", bus, driver, de->d_name); - list->path = canonicalize_file_name(path); + + rpath = malloc(PATH_MAX); + list->path = realpath(path, rpath); list->next = NULL; } @@ -198,9 +201,11 @@ const struct imsm_orom *find_imsm_orom(v char *devt_to_devpath(dev_t dev) { char device[40]; + char *rpath; sprintf(device, "/sys/dev/block/%d:%d/device", major(dev), minor(dev)); - return canonicalize_file_name(device); + rpath = malloc(PATH_MAX); + return realpath(device, rpath); } static char *diskfd_to_devpath(int fd)