From nobody Fri Jun 12 22:35:01 2026 Received: from m16.mail.163.com (m16.mail.163.com [220.197.31.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 D64533A0B39 for ; Tue, 12 May 2026 08:56:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=220.197.31.4 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778576222; cv=none; b=Te/9vSFuBwXzCfyBQRoADKSTjEeCxu82R3jHWa2GTRZo1tCUzj2wVWpsKmMARSe61JLTpxs1B6nbL8czEcbmvPLnYJSxDhg1QkbCEO+H93D29Btk4BZfh4XsZRz+qmtfhy0m10waLj6cU/b0e4t6/emVakWtCmTv+wTasB2asAU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778576222; c=relaxed/simple; bh=pciu9NgyGeY8rAacN/nvtPg/ySbMG8tXlowzvTWeHD8=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=UxTv5xFG/GcAcBVjb0l+zAwvmwNy5r0p3Nsx+ht5js4q6fvGlpXHsomizisbfrE8c9rNrhbwf+GF5aE+YMZAV751fHzRsnesufeI/Sl+yh/uexKY1RsC0ajDe4Gtzqd39aNCaB4zZ3+In7aj4C7YqzhJa5Oa3WlS/AA2/wKNu1I= 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=f7UOccn0; arc=none smtp.client-ip=220.197.31.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="f7UOccn0" 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=V1 6wZi8CBWGVKQz5HIr9HIpmeN9JoxIt+vJ9yUUV56k=; b=f7UOccn07rljwYUahg TNDFhkc/5Xq16htcqjb5QOpdHPempZMNLRrQ48oUdRQYJUvN8JaX1N6058bY0K7S hQRew6sPUT8BqxY2hAVaGcRR9qXMzj73MsRNSl4jBdX99tkBs0NJ/NkDAVs49yVO aAYKWF9kco3GeTgLK1p5H1xe4= Received: from localhost.localdomain (unknown []) by gzsmtp5 (Coremail) with SMTP id QCgvCgDX98YU6wJqUtDoDQ--.152S2; Tue, 12 May 2026 16:55:51 +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 v1] mm/shrinker: simplify shrinker_memcg_alloc() using guard() Date: Tue, 12 May 2026 16:55:46 +0800 Message-Id: <20260512085546.368911-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: QCgvCgDX98YU6wJqUtDoDQ--.152S2 X-Coremail-Antispam: 1Uf129KBjvJXoWrtry5uw15Jryxuw13KrW3Wrg_yoW8Jr1xpF W7GrZrJa1rAFnYqFy7AFnxXF1UAw48uay8Gr97XFy5t34fXF13Wr17tF47tFy8Ga4fXFyq qryUWr1Y93WUJw7anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x0JUUDG5UUUUU= X-CM-SenderInfo: rprymiyqyxmiixs6il2tof0z/xtbC7xcbEWoC6xdN7AAA3H 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. Signed-off-by: wangxuewen --- mm/shrinker.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/mm/shrinker.c b/mm/shrinker.c index 76b3f750cf65..1274130323bf 100644 --- a/mm/shrinker.c +++ b/mm/shrinker.c @@ -222,22 +222,19 @@ static int shrinker_memcg_alloc(struct shrinker *shri= nker) 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