Em Thu, Nov 26, 2020 at 06:00:11PM +0100, Jiri Olsa escreveu: > When adding new build id link we fail if the link is already > there. Adding check for existing link and output debug message > that the build id is already linked.
Thanks, applied. - Arnaldo > Signed-off-by: Jiri Olsa <jo...@kernel.org> > --- > tools/perf/util/build-id.c | 19 ++++++++++++++++++- > 1 file changed, 18 insertions(+), 1 deletion(-) > > diff --git a/tools/perf/util/build-id.c b/tools/perf/util/build-id.c > index 2aacc8b29f7e..4a391f13f40d 100644 > --- a/tools/perf/util/build-id.c > +++ b/tools/perf/util/build-id.c > @@ -755,8 +755,25 @@ int build_id_cache__add_s(const char *sbuild_id, const > char *name, > tmp = dir_name + strlen(buildid_dir) - 5; > memcpy(tmp, "../..", 5); > > - if (symlink(tmp, linkname) == 0) > + if (symlink(tmp, linkname) == 0) { > err = 0; > + } else if (errno == EEXIST) { > + char path[PATH_MAX]; > + ssize_t len; > + > + len = readlink(linkname, path, sizeof(path) - 1); > + if (len <= 0) { > + pr_err("Cant read link: %s\n", linkname); > + goto out_free; > + } > + path[len] = '\0'; > + > + if (strcmp(tmp, path)) { > + pr_debug("build <%s> already linked to %s\n", > + sbuild_id, linkname); > + } > + err = 0; > + } > > /* Update SDT cache : error is just warned */ > if (realname && > -- > 2.26.2 > -- - Arnaldo