Re: [PATCH 01/14] perf tools: Make rm_rf to remove single file

From: Alexey Budankov
Date: Tue Feb 05 2019 - 06:33:15 EST



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-whhp3ej5795l9dc86xfyyp74@xxxxxxxxxxxxxx
> Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
> ---
> 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;
>