diff options
Diffstat (limited to 'util.c')
-rw-r--r-- | util.c | 16 |
1 files changed, 12 insertions, 4 deletions
@@ -826,10 +826,7 @@ struct supertype *super_by_fd(int fd) int devnum; if (subarray) *subarray++ = '\0'; - if (strncmp(dev, "md_d", 4) == 0) - devnum = -1-atoi(dev+4); - else - devnum = atoi(dev+2); + devnum = devname2devnum(dev); subarray = strdup(subarray); if (sra) sysfs_free(sra); @@ -1013,6 +1010,17 @@ char *devnum2devname(int num) return strdup(name); } +int devname2devnum(char *name) +{ + char *ep; + int num; + if (strncmp(name, "md_d", 4)==0) + num = -1-strtoul(name+4, &ep, 10); + else + num = strtoul(name+2, &ep, 10); + return num; +} + int fd2devnum(int fd) { struct stat stb; |