summaryrefslogtreecommitdiff
path: root/tools/perf/util/build-id.c
diff options
context:
space:
mode:
authorAdrian Hunter <adrian.hunter@intel.com>2022-07-11 12:31:52 +0300
committerArnaldo Carvalho de Melo <acme@redhat.com>2022-07-20 17:07:58 +0300
commitc1fd5b7d8aed8104d5189c3d55545d67f9149bb6 (patch)
treea7af4a920efb3bd991e0cdee34d79198e3bef04f /tools/perf/util/build-id.c
parent15fe03621d9df90c23de7a2099b692e2da344cde (diff)
downloadlinux-c1fd5b7d8aed8104d5189c3d55545d67f9149bb6.tar.xz
perf buildid-cache: Do not require purge files to also be in the file system
realname() returns NULL if the file is not in the file system, but we can still remove it from the build ID cache in that case, so continue and attempt the purge with the name provided. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Ian Rogers <irogers@google.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: kvm@vger.kernel.org Link: https://lore.kernel.org/r/20220711093218.10967-10-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/build-id.c')
-rw-r--r--tools/perf/util/build-id.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/tools/perf/util/build-id.c b/tools/perf/util/build-id.c
index 7c9f441936ee..9e176146eb10 100644
--- a/tools/perf/util/build-id.c
+++ b/tools/perf/util/build-id.c
@@ -561,14 +561,11 @@ char *build_id_cache__cachedir(const char *sbuild_id, const char *name,
char *realname = (char *)name, *filename;
bool slash = is_kallsyms || is_vdso;
- if (!slash) {
+ if (!slash)
realname = nsinfo__realpath(name, nsi);
- if (!realname)
- return NULL;
- }
if (asprintf(&filename, "%s%s%s%s%s", buildid_dir, slash ? "/" : "",
- is_vdso ? DSO__NAME_VDSO : realname,
+ is_vdso ? DSO__NAME_VDSO : (realname ? realname : name),
sbuild_id ? "/" : "", sbuild_id ?: "") < 0)
filename = NULL;