Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp3962106pxb; Tue, 17 Nov 2020 07:59:26 -0800 (PST) X-Google-Smtp-Source: ABdhPJxleJcnIimJPgkp3NozIEPPogIouzJX8HJTODm4BREwcjpAdqECbhRCAaG+FaU/PzQtLFTY X-Received: by 2002:a17:906:2458:: with SMTP id a24mr19530261ejb.20.1605628765899; Tue, 17 Nov 2020 07:59:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605628765; cv=none; d=google.com; s=arc-20160816; b=Pds3RYv0HBkvIyP9NOvnNFOK1kYWCPG1bGG4iP/zH2MUKlzE39UZA4RYJdQ4mTLorg NSp/VF1fZsKCV3IzXOymYqgEDSo/gSOdNvQFnKR8N1kQID8tUkgCIGqVVJQqgDi0ZzgQ X4lqtD4cWl1yVNtYkT/8oxpUi3Yo7NyaM9ayFIY626gtZzgYWuiJehGhlQ3vGmlqd/7O f1hRMHlSm5LQ1jJ400/ugfBATBjLXTTzAvA05zxDjZevi+8wLkgQbBvnbr0ZdPkQQfr2 WB7/+VQUTQYzdoU2Ub3O59XFgeacqGHym91IcwfHeXRup/SkUVOu1cD3PbcpPnXYw2sF OGgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=qZr1CDpsxkc0EtTeIWjg8oXT7/DV+Tesw82XN3N59Y8=; b=B30wpuhQ/Mb5qdntYLsVzywO4vGmcNMrR5rmRRTGUGi8apnedUbGKKB0nnE+UCHK6X JYyu8gy1OiFO+W2SaFLyOjhkkjezphha9W8vjZJfm/PaCo2zGfwuShn6zQlU+9zfpH0v yrPI4ekUsWUQ7CwdMycjbK6ozmKb+p01oJ8O0KWPXfY7gL/r19NnNccDCs8bx0FAELZR fEsiG9cRBKOo7UR7ooiimc1Z4X/6BAY5kx3UEutgMU+p0eu4vprBntYnEYAjuShtyyV1 XuaZEdqtTUnObZ+dJn6zOIeFSqo2knRVy778WwJI33+bPTljUCfimbDntn/p9KbWEwAE JECA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codecoup-pl.20150623.gappssmtp.com header.s=20150623 header.b=AsneKCkC; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cc20si14542961edb.341.2020.11.17.07.58.49; Tue, 17 Nov 2020 07:59:25 -0800 (PST) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@codecoup-pl.20150623.gappssmtp.com header.s=20150623 header.b=AsneKCkC; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725790AbgKQP5K (ORCPT + 99 others); Tue, 17 Nov 2020 10:57:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55294 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726822AbgKQP5J (ORCPT ); Tue, 17 Nov 2020 10:57:09 -0500 Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1B667C0613CF for ; Tue, 17 Nov 2020 07:57:09 -0800 (PST) Received: by mail-lf1-x12a.google.com with SMTP id s30so30802596lfc.4 for ; Tue, 17 Nov 2020 07:57:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=codecoup-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=qZr1CDpsxkc0EtTeIWjg8oXT7/DV+Tesw82XN3N59Y8=; b=AsneKCkCgXXof2+1Y2aqdvEv2nocv7idshizTTw2WXElrue5y0ceQexxsJWsJjyNeA VCCdY3KUps5jiHSDcQqzIGR7EJ8q5QTOZlyw2sJmUQagL6cHzfDX+Gwfdil/JBNSZZz6 feJ1tfiSqjBnmA1gCV9ZWO2m74cFMQ8LEW5cO4fM2iftIBvqy0j4rp8VQu8fpQAIs5oc McmmIK3mKjTeacGuCKunSdORtiqQmiD5/fy0UNPpuNyj6RmvwZali87NDk4CdDNcQfxx iUYUogddQ+ZggyxVa3ZGtK0K4LJg5Wp0WaN4BAednanPFyy0x/yCA7ekakKQlQFU71s4 jq5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=qZr1CDpsxkc0EtTeIWjg8oXT7/DV+Tesw82XN3N59Y8=; b=c6LphzJ5CBY4Sc/k1yDcE1iw24DMlMRi8FrX1cGkNGPDr4eaz9XFbmS9BuloQCgkWL 1VcBNlK0MqnqkB1rDnoqNbJi5NgwtSn57+BrnJKXci3foaS9okD13arcDW2nXK7IMUb8 qGdD4vCgfFLV6+ryIUaIiLdKRB9wAM0uBmJakmDPcpQH3hneMyYNp/TQlX+EHzyWPWm4 hH5+bMZHRk+7VuzFaKwBpFS28HNr1XeduI1JwlwMkwAsqzy3IdDsMwWph24PlCP0DFUV GWMOZR+9SyNXvUlFIj/CM78cWRfACMkiJ7b9Tu1j6htYfyoQQiRj4hf5b/8zWVbSnxWo f1gg== X-Gm-Message-State: AOAM530q2wNlYTuw4kAsRx8Y8IOH45lrn/zKkMgEl7uMNUkuskzq88+R UJsOUxkrr0NimdoF/dlAB/cSOTiAaZkmYA== X-Received: by 2002:ac2:44ac:: with SMTP id c12mr2169378lfm.602.1605628626998; Tue, 17 Nov 2020 07:57:06 -0800 (PST) Received: from ix.codecoup.local ([95.143.243.62]) by smtp.gmail.com with ESMTPSA id v9sm3192366lfd.287.2020.11.17.07.57.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Nov 2020 07:57:05 -0800 (PST) From: Szymon Janc To: linux-bluetooth@vger.kernel.org Cc: Szymon Janc Subject: [PATCH] device: Update cache only if content changed Date: Tue, 17 Nov 2020 16:57:03 +0100 Message-Id: <20201117155703.30268-1-szymon.janc@codecoup.pl> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org This fix hammering storage device (eg sdcard) when doing scanning and LE devices are around. --- src/device.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/device.c b/src/device.c index 2800b276a..cf4226f42 100644 --- a/src/device.c +++ b/src/device.c @@ -509,7 +509,9 @@ void device_store_cached_name(struct btd_device *dev, const char *name) char d_addr[18]; GKeyFile *key_file; char *data; + char *data_old; gsize length = 0; + gsize length_old = 0; if (device_address_is_private(dev)) { DBG("Can't store name for private addressed device %s", @@ -524,11 +526,17 @@ void device_store_cached_name(struct btd_device *dev, const char *name) key_file = g_key_file_new(); g_key_file_load_from_file(key_file, filename, 0, NULL); + data_old = g_key_file_to_data(key_file, &length_old, NULL); + g_key_file_set_string(key_file, "General", "Name", name); data = g_key_file_to_data(key_file, &length, NULL); - g_file_set_contents(filename, data, length, NULL); + + if ((length != length_old) || (memcmp(data, data_old, length))) + g_file_set_contents(filename, data, length, NULL); + g_free(data); + g_free(data_old); g_key_file_free(key_file); } -- 2.28.0