From: NeilBrown Date: Wed, 15 Dec 2010 22:07:51 +0000 (+1100) Subject: Split fmt_devnum out from devnum2devname X-Git-Tag: mdadm-3.2~180 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=11877f4dc2c9943058eaa94788f523c6004a0d5f;p=thirdparty%2Fmdadm.git Split fmt_devnum out from devnum2devname Sometimes we want to convert a devnum to a devname without allocating memory. So provide function to do the formatting without allocation. Signed-off-by: NeilBrown --- diff --git a/mdadm.h b/mdadm.h index 056b8ed0..73db7ecb 100644 --- a/mdadm.h +++ b/mdadm.h @@ -1133,6 +1133,7 @@ extern __u32 random32(void); extern int start_mdmon(int devnum); extern char *devnum2devname(int num); +extern void fmt_devname(char *name, int num); extern int devname2devnum(char *name); extern int stat2devnum(struct stat *st); extern int fd2devnum(int fd); diff --git a/sysfs.c b/sysfs.c index 7a0403d6..a9ece82b 100644 --- a/sysfs.c +++ b/sysfs.c @@ -90,11 +90,7 @@ void sysfs_init(struct mdinfo *mdi, int fd, int devnum) } if (devnum == NoMdDev) return; - if (devnum >= 0) - sprintf(mdi->sys_name, "md%d", devnum); - else - sprintf(mdi->sys_name, "md_d%d", - -1-devnum); + fmt_devname(mdi->sys_name, devnum); } diff --git a/util.c b/util.c index 4b41e2b4..f57cd9ee 100644 --- a/util.c +++ b/util.c @@ -1681,13 +1681,18 @@ unsigned long long min_recovery_start(struct mdinfo *array) return recovery_start; } -char *devnum2devname(int num) +void fmt_devname(char *name, int num) { - char name[100]; if (num >= 0) sprintf(name, "md%d", num); else sprintf(name, "md_d%d", -1-num); +} + +char *devnum2devname(int num) +{ + char name[100]; + fmt_devname(name,num); return strdup(name); }