From 11877f4dc2c9943058eaa94788f523c6004a0d5f Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Thu, 16 Dec 2010 09:07:51 +1100 Subject: [PATCH] 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 --- mdadm.h | 1 + sysfs.c | 6 +----- util.c | 9 +++++++-- 3 files changed, 9 insertions(+), 7 deletions(-) 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); } -- 2.39.2