On 03.02.2019 18:30, Jiri Olsa wrote:
> Let rm_rf remove file if it's provided by path.
> 
> Link: http://lkml.kernel.org/n/tip-whhp3ej5795l9dc86xfyy...@git.kernel.org
> Signed-off-by: Jiri Olsa <jo...@kernel.org>
> ---
>  tools/perf/util/util.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/perf/util/util.c b/tools/perf/util/util.c
> index 320b0fef249a..58b8d6a8bfbc 100644
> --- a/tools/perf/util/util.c
> +++ b/tools/perf/util/util.c
> @@ -125,8 +125,14 @@ int rm_rf(const char *path)
>       char namebuf[PATH_MAX];
>  
>       dir = opendir(path);
> -     if (dir == NULL)
> -             return 0;
> +     if (dir == NULL) {
> +             /*
> +              * The path does not exist or is not directory,
> +              * so there's no harm to try remove it. This way
> +              * rm_rf will work over single file.
> +              */

This can also happen due to lack of fds or memory.
Not sure file still has to be deleted in these cases.

- Alexey

> +             return unlink(path);
> +     }
>  
>       while ((d = readdir(dir)) != NULL && !ret) {
>               struct stat statbuf;
> 

Reply via email to