use fixed size disk name
This commit is contained in:
parent
acaab9cadb
commit
7239440ba6
|
@ -1508,17 +1508,10 @@ int sigar_file_system_list_get(sigar_t *sigar,
|
|||
#define LSPV_CMD "/usr/sbin/lspv"
|
||||
|
||||
typedef struct {
|
||||
char *name;
|
||||
char name[IDENTIFIER_LENGTH];
|
||||
long addr;
|
||||
} aix_diskio_t;
|
||||
|
||||
static void diskio_free(void *data)
|
||||
{
|
||||
aix_diskio_t *diskio = (aix_diskio_t *)data;
|
||||
free(diskio->name);
|
||||
free(diskio);
|
||||
}
|
||||
|
||||
/*
|
||||
* dont have per-partition metrics on aix.
|
||||
* need to build a mount point => diskname map.
|
||||
|
@ -1530,7 +1523,6 @@ static int create_diskmap_v4(sigar_t *sigar)
|
|||
char buffer[BUFSIZ], *ptr;
|
||||
|
||||
sigar->diskmap = sigar_cache_new(25);
|
||||
sigar->diskmap->free_value = diskio_free;
|
||||
|
||||
if (!fp) {
|
||||
return ENOENT;
|
||||
|
@ -1538,7 +1530,7 @@ static int create_diskmap_v4(sigar_t *sigar)
|
|||
|
||||
while ((ptr = fgets(buffer, sizeof(buffer), fp))) {
|
||||
FILE *lfp;
|
||||
char cmd[256], disk[56];
|
||||
char cmd[256], disk[IDENTIFIER_LENGTH];
|
||||
char *s;
|
||||
|
||||
if (strstr(ptr, " None")) {
|
||||
|
@ -1547,7 +1539,7 @@ static int create_diskmap_v4(sigar_t *sigar)
|
|||
if ((s = strchr(ptr, ' '))) {
|
||||
*s = '\0';
|
||||
}
|
||||
strcpy(disk, ptr);
|
||||
SIGAR_SSTRCPY(disk, ptr);
|
||||
snprintf(cmd, sizeof(cmd),
|
||||
LSPV_CMD " -l %s", disk);
|
||||
if (!(lfp = popen(cmd, "r"))) {
|
||||
|
@ -1572,7 +1564,7 @@ static int create_diskmap_v4(sigar_t *sigar)
|
|||
retval = stat(ptr, &sb);
|
||||
if (retval == 0) {
|
||||
aix_diskio_t *diskio = malloc(sizeof(*diskio));
|
||||
diskio->name = strdup(disk);
|
||||
SIGAR_SSTRCPY(diskio->name, disk);
|
||||
diskio->addr = -1;
|
||||
ent = sigar_cache_get(sigar->diskmap, SIGAR_FSDEV_ID(sb));
|
||||
ent->value = diskio;
|
||||
|
@ -1609,7 +1601,6 @@ static int create_diskmap_v5(sigar_t *sigar)
|
|||
}
|
||||
|
||||
sigar->diskmap = sigar_cache_new(25);
|
||||
sigar->diskmap->free_value = diskio_free;
|
||||
|
||||
odm_initialize();
|
||||
|
||||
|
@ -1638,7 +1629,7 @@ static int create_diskmap_v5(sigar_t *sigar)
|
|||
|
||||
if (retval == 0) {
|
||||
aix_diskio_t *diskio = malloc(sizeof(*diskio));
|
||||
diskio->name = strdup(disk[i].name);
|
||||
SIGAR_SSTRCPY(diskio->name, disk[i].name);
|
||||
diskio->addr = -1;
|
||||
ent = sigar_cache_get(sigar->diskmap, SIGAR_FSDEV_ID(sb));
|
||||
ent->value = diskio;
|
||||
|
|
Loading…
Reference in New Issue