]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Split fmt_devnum out from devnum2devname
authorNeilBrown <neilb@suse.de>
Wed, 15 Dec 2010 22:07:51 +0000 (09:07 +1100)
committerNeilBrown <neilb@suse.de>
Wed, 15 Dec 2010 22:07:51 +0000 (09:07 +1100)
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 <neilb@suse.de>
mdadm.h
sysfs.c
util.c

diff --git a/mdadm.h b/mdadm.h
index 056b8ed065342488f0df990f19e4f6e15bbc5757..73db7ecb3d08216490cb3ad05f33becd9d217ebe 100644 (file)
--- 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 7a0403d635b7f2067fa48ecb50e9ba326f5a8037..a9ece82b672d03c87cb35cbb34dfeb1f100fb08a 100644 (file)
--- 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 4b41e2b47b7ce50e3a4bdd23b182f0cfd2b637a3..f57cd9eea8eb8c379f7ce3c0f5099b7ae9967cb4 100644 (file)
--- 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);
 }