OSDN Git Service

perf buildid-cache: Do not require purge files to also be in the file system
authorAdrian Hunter <adrian.hunter@intel.com>
Mon, 11 Jul 2022 09:31:52 +0000 (12:31 +0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 20 Jul 2022 14:07:58 +0000 (11:07 -0300)
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>
tools/perf/util/build-id.c

index 7c9f441..9e17614 100644 (file)
@@ -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;