On 11/19/18 9:10 PM, Wang Huaqiang wrote:
> 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
> ---
> src/util/virresctrl.c | 9 -
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/src/util/virresctrl.c b/src/util/virresctrl.c
> index 7aeca9d..e0ad460 100644
> --- a/src/util/virresctrl.c
> +++ b/src/util/virresctrl.c
> @@ -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, , 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__". 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(, "%s/%s", datapath, ent->d_name) < 0);
This didn't compile... But easily fixed. when removing the ;
> +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;
>
Usage of virFileIsDir straight is my mistake because of the build error
on some odd platform when using- "if (ent->d_type != DT_DIR)"...
Reviewed-by: John Ferlan
(and pushed)
Tks -
John
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list