From patchwork Fri Mar 24 00:48:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jan Alexander Steffens \\(heftig\\)" X-Patchwork-Id: 66827 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0D49338708A7 for ; Fri, 24 Mar 2023 00:49:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0D49338708A7 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679618950; bh=Mely0FVHSWMM9ivo7NEW8FjWIPNEYA+dXW6ePvayHGc=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Help:List-Subscribe:From: Reply-To:From; b=Ud+yDpYWwm3EiJcfgBCFYtf3Qe8M8FXb6gPea2urOWVWtieRyxuRXlgJIGd9vYPMf fmp9KnSa/oOquJ5IWb7kVkYc7OkiUYI5uv3lmuU0igebu5wiIdkQDSZSFNhiHWbmYg l72cTp5hhx7zsBtfx9SNG7r3BbE+ebwAuiRusk0k= X-Original-To: elfutils-devel@sourceware.org Delivered-To: elfutils-devel@sourceware.org Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com [209.85.208.46]) by sourceware.org (Postfix) with ESMTPS id 40A153858D28 for ; Fri, 24 Mar 2023 00:48:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 40A153858D28 Received: by mail-ed1-f46.google.com with SMTP id w9so1951238edc.3 for ; Thu, 23 Mar 2023 17:48:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679618931; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Mely0FVHSWMM9ivo7NEW8FjWIPNEYA+dXW6ePvayHGc=; b=4PwFlCY1ldyV86bA4GVOeL1FmKPssGK2w35N4xST/4A3u683Jh5IEYA8+h6N/F/+5w IawRyVNuIF/IRXDd94psPacTBt7hFc4uv6EpE2ahNq4ssRFHh6UsfoHmxeMYPVRb4Zr1 sp115sc9wYz3CqFvlgv7ndDtO7rYPuEULqsypvMXdyzM2QLEVpeD1J0gd+EJVD/m1W9r AWZh+HIMNMHr/aLygQ9uIfdbEoQt1ZQ4WG5djkAsn/GQrjrQZVKdiCSHx2a0nhH1knRa OMWmL4u5/V9F+gvZylmmqofANOLuaYoD829pEUB+1psjwSAbXvp++zmCiiXffx/g3f6j 6I3Q== X-Gm-Message-State: AAQBX9fRsUhTl/+kM83gOuZx97cXLRWKtxdCuj1TXDQiA2NJ22ZDBPMo 5VWy5bMVwBscRCv5slY8wIWekVMTtvs= X-Google-Smtp-Source: AKy350bLBCNdOfc9PpMcx3v/PSpqekoDiFDTE7aqoM7gsc4B5dgM+hvhxyL3uWJ9CBNh46RcjdKfQw== X-Received: by 2002:a17:906:ef90:b0:8b2:7567:9c30 with SMTP id ze16-20020a170906ef9000b008b275679c30mr1003783ejb.59.1679618930662; Thu, 23 Mar 2023 17:48:50 -0700 (PDT) Received: from ocellus.fritz.box (p200300eae71e29008ef8c5fffef034ee.dip0.t-ipconnect.de. [2003:ea:e71e:2900:8ef8:c5ff:fef0:34ee]) by smtp.gmail.com with ESMTPSA id u25-20020a50c2d9000000b004faf34064c8sm9824029edf.62.2023.03.23.17.48.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Mar 2023 17:48:50 -0700 (PDT) To: elfutils-devel@sourceware.org Cc: "Jan Alexander Steffens (heftig)" Subject: [PATCH 3/3] debuginfod: When retrieving files from cache, update atime manually Date: Fri, 24 Mar 2023 01:48:05 +0100 Message-Id: <20230324004805.156080-3-heftig@archlinux.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230324004805.156080-1-heftig@archlinux.org> References: <20230324004805.156080-1-heftig@archlinux.org> MIME-Version: 1.0 X-Spam-Status: No, score=-13.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: elfutils-devel@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Elfutils-devel mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-Patchwork-Original-From: "Jan Alexander Steffens \(heftig\) via Elfutils-devel" From: "Jan Alexander Steffens \\(heftig\\)" Reply-To: "Jan Alexander Steffens \(heftig\)" Errors-To: elfutils-devel-bounces+patchwork=sourceware.org@sourceware.org Sender: "Elfutils-devel" The cache cleaning logic requires atime to be correct (strictatime) but most users on Linux only have relatime or even noatime. Attempt to update the atime manually so that the cache works properly. Signed-off-by: Jan Alexander Steffens (heftig) --- debuginfod/debuginfod-client.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c index 1a2d7573..484dc7b3 100644 --- a/debuginfod/debuginfod-client.c +++ b/debuginfod/debuginfod-client.c @@ -618,6 +618,19 @@ path_escape (const char *src, char *dest) dest[q] = '\0'; } +/* Attempt to update the atime */ +static void +update_atime (int fd) +{ + struct timespec tvs[2]; + + tvs[0].tv_sec = tvs[1].tv_sec = 0; + tvs[0].tv_nsec = UTIME_NOW; + tvs[1].tv_nsec = UTIME_OMIT; + + (void) futimens (fd, tvs); /* best effort */ +} + /* Attempt to read an ELF/DWARF section with name SECTION from FD and write it to a separate file in the debuginfod cache. If successful the absolute path of the separate file containing SECTION will be stored in USR_PATH. @@ -761,6 +774,7 @@ extract_section (int fd, const char *section, char *fd_path, char **usr_path) *usr_path = sec_path; else free (sec_path); + update_atime(fd); rc = sec_fd; goto out2; } @@ -1098,6 +1112,7 @@ debuginfod_query_server (debuginfod_client *c, } } /* Success!!!! */ + update_atime(fd); rc = fd; goto out; }