From patchwork Wed Aug 24 10:23:00 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 101940 Delivered-To: patch@linaro.org Received: by 10.140.29.52 with SMTP id a49csp273124qga; Wed, 24 Aug 2016 04:54:34 -0700 (PDT) X-Received: by 10.98.159.73 with SMTP id g70mr4887487pfe.121.1472039674580; Wed, 24 Aug 2016 04:54:34 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a6si9402942pfb.49.2016.08.24.04.54.29; Wed, 24 Aug 2016 04:54:34 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932356AbcHXLy0 (ORCPT + 27 others); Wed, 24 Aug 2016 07:54:26 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:64112 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753962AbcHXLyZ (ORCPT ); Wed, 24 Aug 2016 07:54:25 -0400 Received: from wuerfel.lan. ([78.42.132.4]) by mrelayeu.kundenserver.de (mreue005) with ESMTPA (Nemesis) id 0M5cGS-1bEHaT3IJE-00xXfn; Wed, 24 Aug 2016 13:37:37 +0200 From: Arnd Bergmann To: Vladimir Davydov Cc: Arnd Bergmann , Johannes Weiner , Michal Hocko , Andrew Morton , Tejun Heo , Mel Gorman , cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH v2] mm: memcontrol: avoid unused function warning Date: Wed, 24 Aug 2016 12:23:00 +0200 Message-Id: <20160824113733.2776701-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:DHxc+MOH6mmmwk1JtAWcuOwr7JVXw9Yesle8Ep2p58M7szicsa+ GQXvu+l8tp/dadLyfr1wPeYhr0S/m+4ZNDe9IGGaUBXjd/RZfXJH9x4bmrAVNnwwW4ePBn9 Tb5YzIL8Vds4G0dSdkUnCGLv42aObQVvo00ndMSzI7414+jpPvQ8T5xVvbfmyu1GSBYv/gS X7mnyrN7DZT7FemiKoBHg== X-UI-Out-Filterresults: notjunk:1; V01:K0:Ed2WuUwnFM0=:ig9d2QFCtNBWJFxljRTOug URYnD760ZZ6oTZYBEicCS87gchmwiitj/y7Z6KqeP4AldDvAaEJmH+g7TW8IndrArOPxQ6j6W vjDnoSRirDZPqlN0ah8/SfcZ36QC9XVAVSAyX6n1+LmcQp3uEG0eLXuJ1aFizx/J0RriPkYp3 O6ALGXXDv0HPID5oVyFG85+ubY5xjLhzK/I1Qo+SsiL5TJK1O/OTwHqrRJ5VnSsjQ+6xIamV5 nUo5rVOgl1GkBByL9KhRl8f5K4hvTs+mLKUwNqRbR/MLkHJL1Yf0+YzPuqT/6IPAZxR+nIDkv cWVOD1XLAC/fpetrwsNNyQE0Nxqk6X5jJ70iMQ4rcP+e4uiVZgJ0JZ9Qnq/r1wUM13tiJJ0E1 bmvsfPP63QZYsW07hv4T9dWndM+Pt8F8c2DHAAzyj2ttrJ79SWGEVcnMW+aXq7OZRCCE3kP5m 36aEVCMe25TUh8YrLjHa58RfD56YlGVtPXg+I6Hz6aakJzX/+NjBkTcxf63CXM+3jgI6cKZ08 xlK5ZEUHT86RtD+flYx9KZn63X1GFikEpqdlMHg3MUDvVaF1CoGbSZ3ChKsRQ7G/s7za6x2Wf G/HVoOdBLc1aBzBVXJVrUDBjtdPqB4yisll73SHUiqT3Na88a43l6k9b/NqBAcGfx4o4E2gHK 6rgn7HoM3bbx0SauAuEbAMOGy0BaPlvR8figoNUJAn87VL0RXKniQHx6YeF41ERrdoWU= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A bugfix in v4.8-rc2 introduced a harmless warning when CONFIG_MEMCG_SWAP is disabled but CONFIG_MEMCG is enabled: mm/memcontrol.c:4085:27: error: 'mem_cgroup_id_get_online' defined but not used [-Werror=unused-function] static struct mem_cgroup *mem_cgroup_id_get_online(struct mem_cgroup *memcg) This moves the function inside of the #ifdef block that hides the calling function, to avoid the warning. Signed-off-by: Arnd Bergmann Fixes: 1f47b61fb407 ("mm: memcontrol: fix swap counter leak on swapout from offline cgroup") Acked-by: Michal Hocko Acked-by: Vladimir Davydov --- mm/memcontrol.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) This is the alternative to the original patch, as suggested by Michal Hocko. Andrew, please pick whichever version you like better. -- 2.9.0 diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 2ff0289ad061..9a6a51a7c416 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -4082,24 +4082,6 @@ static void mem_cgroup_id_get_many(struct mem_cgroup *memcg, unsigned int n) atomic_add(n, &memcg->id.ref); } -static struct mem_cgroup *mem_cgroup_id_get_online(struct mem_cgroup *memcg) -{ - while (!atomic_inc_not_zero(&memcg->id.ref)) { - /* - * The root cgroup cannot be destroyed, so it's refcount must - * always be >= 1. - */ - if (WARN_ON_ONCE(memcg == root_mem_cgroup)) { - VM_BUG_ON(1); - break; - } - memcg = parent_mem_cgroup(memcg); - if (!memcg) - memcg = root_mem_cgroup; - } - return memcg; -} - static void mem_cgroup_id_put_many(struct mem_cgroup *memcg, unsigned int n) { if (atomic_sub_and_test(n, &memcg->id.ref)) { @@ -5821,6 +5803,24 @@ static int __init mem_cgroup_init(void) subsys_initcall(mem_cgroup_init); #ifdef CONFIG_MEMCG_SWAP +static struct mem_cgroup *mem_cgroup_id_get_online(struct mem_cgroup *memcg) +{ + while (!atomic_inc_not_zero(&memcg->id.ref)) { + /* + * The root cgroup cannot be destroyed, so it's refcount must + * always be >= 1. + */ + if (WARN_ON_ONCE(memcg == root_mem_cgroup)) { + VM_BUG_ON(1); + break; + } + memcg = parent_mem_cgroup(memcg); + if (!memcg) + memcg = root_mem_cgroup; + } + return memcg; +} + /** * mem_cgroup_swapout - transfer a memsw charge to swap * @page: page whose memsw charge to transfer