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