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; >