lkml.org 
[lkml]   [2020]   [Nov]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 10/25] perf tools: Add check for existing link in buildid dir
    Date
    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.

    Signed-off-by: Jiri Olsa <jolsa@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
    \
     
     \ /
      Last update: 2020-11-24 00:09    [W:2.954 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site