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 <neilb@suse.de>
This commit is contained in:
NeilBrown 2010-12-16 09:07:51 +11:00
parent 8bd67e345e
commit 11877f4dc2
3 changed files with 9 additions and 7 deletions

View File

@ -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);

View File

@ -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);
}

9
util.c
View File

@ -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);
}