From nobody Fri Jun 12 18:55:47 2026 Received: from m16.mail.163.com (m16.mail.163.com [117.135.210.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7BBD13A5E8F for ; Wed, 13 May 2026 07:52:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=117.135.210.4 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778658775; cv=none; b=C/ZmKlaAa/oLlIqBWMOMccm/zRYDhzJ34xPF4dZW4vMEQOc12VBvry0scESITXcW51ckrJbLFRKXQvEWb3ze49Nvc2gFTZyTB8zg1J0aXXA7C3N2dNeoDM0CShtdcwSU6BXrPBE0lY7cg/YIpYw/TjC4up6lx+nKYezDEBhAObk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778658775; c=relaxed/simple; bh=fA5SFfcEaCzU1Hzakf4rMVCiE1E0kg8IIDO3b8r9qdQ=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=Wwp66SuRZtGpNq0IjovatBLStfHOpEb10R3uX4ShaFDsJeDXqKT4ZZQMFVr+ASfWscq3XZ9SZML35O5PJwtVrl8xVZJ3GW2u8HZ+2zROFCPHbNsrzyh5JHW9KF1taadB4WMkMgYtBO0uk7snah9lL/HjohUpE4C3d10Vsp0ZsCg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com; spf=pass smtp.mailfrom=163.com; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b=f0+V9mG2; arc=none smtp.client-ip=117.135.210.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=163.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b="f0+V9mG2" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:To:Subject:Date:Message-Id:MIME-Version; bh=lp dvcDNP8HX01NlxU6uGsA7tI4rt59uNMOutPm2jps4=; b=f0+V9mG2zkNrRd43EG YkjUtEgp9NAW2i2vxrWYrh2QxbGHzYB5u7n9s16fGR7q0IlDa7txqzAGdu4rehbB oX68kBpuPHEvV2LU8zemihA4lp5GdZCMDR0h/nWIT/csqzm7nBojjkk8yXztk5C2 7r/DRi+MNBqyzh9SmSmmibBZM= Received: from localhost.localdomain (unknown []) by gzga-smtp-mtada-g0-4 (Coremail) with SMTP id _____wDnQciwLQRqR559BA--.36720S2; Wed, 13 May 2026 15:52:18 +0800 (CST) From: wangxuewen <18810879172@163.com> To: akpm@linux-foundation.org, david@fromorbit.com, qi.zheng@linux.dev, roman.gushchin@linux.dev, muchun.song@linux.dev Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, wangxuewen <18810879172@163.com>, wangxuewen Subject: [PATCH v2] mm/shrinker: simplify shrinker_memcg_alloc() using guard() Date: Wed, 13 May 2026 15:52:14 +0800 Message-Id: <20260513075214.2655710-1-18810879172@163.com> X-Mailer: git-send-email 2.25.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: _____wDnQciwLQRqR559BA--.36720S2 X-Coremail-Antispam: 1Uf129KBjvJXoW7ArWxKw4xuw1UCF1kGF1xZrb_yoW8GFy3pF W5G3y7Ja1rZFnYqFZrAFnxXr1UJw48uay8Grn7Wry5tw1fXF1agr1xtF47tFykGa4ruFZF qryUWr1j93WUJw7anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x0pREzuJUUUUU= X-CM-SenderInfo: rprymiyqyxmiixs6il2tof0z/xtbCzhITCWoELbK6RQAA3I Content-Type: text/plain; charset="utf-8" Use guard(mutex) to automatically handle shrinker_mutex locking and unlocking in shrinker_memcg_alloc(). This removes the explicit mutex_unlock() call, the goto-based error path, and the redundant ret variable, resulting in cleaner and more concise code. v2: - Drop unused 'ret' variable to avoid compiler warning (Muchun Song). Signed-off-by: wangxuewen Acked-by: Muchun Song --- mm/shrinker.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/mm/shrinker.c b/mm/shrinker.c index 76b3f750cf65..cb03fbecc75d 100644 --- a/mm/shrinker.c +++ b/mm/shrinker.c @@ -215,29 +215,26 @@ static DEFINE_IDR(shrinker_idr); =20 static int shrinker_memcg_alloc(struct shrinker *shrinker) { - int id, ret =3D -ENOMEM; + int id; =20 if (mem_cgroup_disabled()) return -ENOSYS; if (mem_cgroup_kmem_disabled() && !(shrinker->flags & SHRINKER_NONSLAB)) return -ENOSYS; =20 - mutex_lock(&shrinker_mutex); + guard(mutex)(&shrinker_mutex); id =3D idr_alloc(&shrinker_idr, shrinker, 0, 0, GFP_KERNEL); if (id < 0) - goto unlock; + return id; =20 if (id >=3D shrinker_nr_max) { if (expand_shrinker_info(id)) { idr_remove(&shrinker_idr, id); - goto unlock; + return -ENOMEM; } } shrinker->id =3D id; - ret =3D 0; -unlock: - mutex_unlock(&shrinker_mutex); - return ret; + return 0; } =20 static void shrinker_memcg_remove(struct shrinker *shrinker) --=20 2.25.1