mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-22 04:25:18 +00:00
util: Fix a bug in virResctrlMonitorGetStats
The path argument of virFileIsDir should be a full name of file, pathname and filename. Fixed it by passing the full path name to virFileIsDir. Signed-off-by: Wang Huaqiang <huaqiang.wang@intel.com> Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
parent
88a109a17d
commit
4e8b37d497
@ -2665,6 +2665,7 @@ virResctrlMonitorGetStats(virResctrlMonitorPtr monitor,
|
||||
int ret = -1;
|
||||
DIR *dirp = NULL;
|
||||
char *datapath = NULL;
|
||||
char *filepath = NULL;
|
||||
struct dirent *ent = NULL;
|
||||
virResctrlMonitorStatsPtr stat = NULL;
|
||||
|
||||
@ -2684,13 +2685,18 @@ virResctrlMonitorGetStats(virResctrlMonitorPtr monitor,
|
||||
while (virDirRead(dirp, &ent, datapath) > 0) {
|
||||
char *node_id = NULL;
|
||||
|
||||
VIR_FREE(filepath);
|
||||
|
||||
/* Looking for directory that contains resource utilization
|
||||
* information file. The directory name is arranged in format
|
||||
* "mon_<node_name>_<node_id>". For example, "mon_L3_00" and
|
||||
* "mon_L3_01" are two target directories for a two nodes system
|
||||
* with resource utilization data file for each node respectively.
|
||||
*/
|
||||
if (!virFileIsDir(ent->d_name))
|
||||
if (virAsprintf(&filepath, "%s/%s", datapath, ent->d_name) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (!virFileIsDir(filepath))
|
||||
continue;
|
||||
|
||||
/* Looking for directory has a prefix 'mon_L' */
|
||||
@ -2734,6 +2740,7 @@ virResctrlMonitorGetStats(virResctrlMonitorPtr monitor,
|
||||
ret = 0;
|
||||
cleanup:
|
||||
VIR_FREE(datapath);
|
||||
VIR_FREE(filepath);
|
||||
VIR_FREE(stat);
|
||||
VIR_DIR_CLOSE(dirp);
|
||||
return ret;
|
||||
|
Loading…
x
Reference in New Issue
Block a user