Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp1729894pxk; Sun, 13 Sep 2020 14:06:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyPWCUgzkM4kNaHffafPBjuDEgJO3RHZxMsA9IHvVONPEOIaixvBY5l/bjzYxwQ7BrxPD4v X-Received: by 2002:aa7:dcc1:: with SMTP id w1mr13882141edu.360.1600031165310; Sun, 13 Sep 2020 14:06:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600031165; cv=none; d=google.com; s=arc-20160816; b=gdhi0cQoyAOWYiMJs176Xfwuyik0NcYjTvjz4ulhdvHSoY33PM3K0vBKBWzaFlxuec cBu+V400JrdWic9wP1JrPIFBxHeaRIglc60U5khrjNpDRoT9soEHsol/fgekZU+W+yUV /GkVTviQnwMkENWEVwBDEEH1Xisc62ZwyZJLjRQsNU1tBCuYVO0i6RPLWrer8Z1mUfy5 BzlujKUzH/TmqHlGPlWZFkgaM8GpobRqMc5gfBc7c6NoNiA3K3V98ENebJg6sZR8XibJ 5/Y0lxlWVrktrMK4F5S8c1Klgzxt96qINv94om41hdDP4mn8zqFY4FAPxUx7Or52cPsr 1OtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=E/ErdyYs4PYEO0vDCCC8daNk1SvrxPQSp6U7knZcBLs=; b=fCvC0Y19pZZwjJsj3mcm1DkaXmWRERA5aqSw0rqmwAIMqC1fpU7xrONo0DZZWPuPfu HnsnjVLJg76O2tYN39N+J6xxX17kMkf7XhsVSMeD8YN5PtTpRG1p20MikuEPCSVwU+6h 5VU4g4si83PEIBYIR6oF0R7SbQ5D4BC6EORDb8iG3r629XZ2FKng319jlnACsEXwicBt SxwsERrqrciGs59bxMm2XcoDxLMEUbWvWwBQJ0s+6+CiRiCXle4Ilu9O3hJe9zN9MQ4g Bu54Cu3hNkZDeiJe7FChNKUpwG+ra1B73PYQhMHGLcIJ4kRtLTbjO+52VtyuQ4O0jcUq sexg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id gs18si6424979ejb.8.2020.09.13.14.05.42; Sun, 13 Sep 2020 14:06:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726008AbgIMVER convert rfc822-to-8bit (ORCPT + 99 others); Sun, 13 Sep 2020 17:04:17 -0400 Received: from us-smtp-delivery-44.mimecast.com ([207.211.30.44]:42688 "EHLO us-smtp-delivery-44.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725991AbgIMVEF (ORCPT ); Sun, 13 Sep 2020 17:04:05 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-437-9OVmYjGAMyuIRCsYvSCWEQ-1; Sun, 13 Sep 2020 17:03:56 -0400 X-MC-Unique: 9OVmYjGAMyuIRCsYvSCWEQ-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 72BA72FD14; Sun, 13 Sep 2020 21:03:54 +0000 (UTC) Received: from krava.redhat.com (ovpn-112-4.ams2.redhat.com [10.36.112.4]) by smtp.corp.redhat.com (Postfix) with ESMTP id A78EF1002388; Sun, 13 Sep 2020 21:03:50 +0000 (UTC) From: Jiri Olsa To: Arnaldo Carvalho de Melo Cc: lkml , Peter Zijlstra , Ingo Molnar , Mark Rutland , Namhyung Kim , Alexander Shishkin , Michael Petlan , Song Liu , "Frank Ch. Eigler" , Ian Rogers , Stephane Eranian , Alexey Budankov , Andi Kleen , Adrian Hunter Subject: [PATCH 07/26] perf tools: Add check for existing link in buildid dir Date: Sun, 13 Sep 2020 23:02:54 +0200 Message-Id: <20200913210313.1985612-8-jolsa@kernel.org> In-Reply-To: <20200913210313.1985612-1-jolsa@kernel.org> References: <20200913210313.1985612-1-jolsa@kernel.org> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jolsa@kernel.org X-Mimecast-Spam-Score: 0.001 X-Mimecast-Originator: kernel.org Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When adding new build id link we fail if the link is already there. Adding check for existing link and warn/replace the link with new target. Signed-off-by: Jiri Olsa --- tools/perf/util/build-id.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tools/perf/util/build-id.c b/tools/perf/util/build-id.c index bdee4e08e60d..ecdc167aa1a0 100644 --- a/tools/perf/util/build-id.c +++ b/tools/perf/util/build-id.c @@ -751,8 +751,26 @@ 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]; + + if (readlink(linkname, path, sizeof(path)) == -1) { + pr_err("Cant read link: %s\n", linkname); + goto out_free; + } + if (strcmp(tmp, path)) { + pr_err("Inconsistent .debug record, updating [%s]\n", + linkname); + + unlink(linkname); + + if (symlink(tmp, linkname)) + goto out_free; + } + err = 0; + } /* Update SDT cache : error is just warned */ if (realname && -- 2.26.2