From nobody Sat Feb 7 15:26:36 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 B82F926AAAB; Thu, 25 Dec 2025 02:30:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766629849; cv=none; b=ErMW9SzzPi9SIST/zOgP4pzosLl3PN/M717epVkDLxMgkUvLTjcuNMScOPCuA73dkXLrl3ZOyu0lffvW45faJe3J2xb9jTUpImt+MsFOuGpL4y5wHLrD9w9wtuaP0ESGCXWG6Qcv51ywTeaY0cs9ptU7HSYtMOB5WGgRdmnI2SE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766629849; c=relaxed/simple; bh=eAX9UEANbnhjK8d5CURObQKfqWquwN6z8606mMzlq4Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZKXe0g7N+nzxtbEEhJ8/Qyq9FtQLV1HMD6cPF7upBjONwBQuLI8Vg1/TS8eKOyGLvjxMid+X5BSxEmep9VpZOqFu/+M4nGxASpku0uWvh8Uw3KUKJe5BNFfq+4hlOoRfu97Vs5CdmowwjRtjvE3JmVf75Iyu+qqzfbEHGgR5Tvg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QnKOlKKP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QnKOlKKP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4C8F5C19422; Thu, 25 Dec 2025 02:30:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1766629849; bh=eAX9UEANbnhjK8d5CURObQKfqWquwN6z8606mMzlq4Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QnKOlKKPM/iXDA0ZpwIGk0cmg3wxuxetRyiKSYiUvLjRqQ1nPgtsBsSSnC17hv0HL J+I9BF2EmigRhUqjDIoHO8sMY1R3TZGdK1/PeDFL6M3hmKKyQymrvDRXmdq2tyt/rg +CVgPId/WRYPM1M+97LwmgRF9O8IbaosT5lCq6/ZKwCpLJQfjtulVf7pu+nie3e1es VzgTQ26eoW7tbkbpAvtiv3isgZTUaFKmC8mYttzgip3DFLG1iZxmvsHXsoFTy+klS8 Xom+krn1o2Z9orbIIMg6AW5qwK9Wte89CX2mA7ewghLhwh7yAdRaxdM5PIZllA1ruZ Neg9rtHU60SxA== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , "# 5 . 18 . x" , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 3/4] mm/damon/sysfs-scheme: cleanup quotas subdirs on scheme dir setup failure Date: Wed, 24 Dec 2025 18:30:36 -0800 Message-ID: <20251225023043.18579-4-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251225023043.18579-1-sj@kernel.org> References: <20251225023043.18579-1-sj@kernel.org> 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 Content-Type: text/plain; charset="utf-8" When a DAMOS-scheme DAMON sysfs directory setup fails after setup of quotas/ directory, subdirectories of quotas/ directory are not cleaned up. As a result, DAMON sysfs interface is nearly broken until the system reboots, and the memory for the unremoved directory is leaked. Cleanup the directories under such failures. Fixes: 1b32234ab087 ("mm/damon/sysfs: support DAMOS watermarks") Cc: # 5.18.x Signed-off-by: SeongJae Park --- mm/damon/sysfs-schemes.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c index e198234f0763..7f14e0d3e7a0 100644 --- a/mm/damon/sysfs-schemes.c +++ b/mm/damon/sysfs-schemes.c @@ -2199,7 +2199,7 @@ static int damon_sysfs_scheme_add_dirs(struct damon_s= ysfs_scheme *scheme) goto put_dests_out; err =3D damon_sysfs_scheme_set_watermarks(scheme); if (err) - goto put_quotas_access_pattern_out; + goto rmdir_put_quotas_access_pattern_out; err =3D damos_sysfs_set_filter_dirs(scheme); if (err) goto put_watermarks_quotas_access_pattern_out; @@ -2224,7 +2224,8 @@ static int damon_sysfs_scheme_add_dirs(struct damon_s= ysfs_scheme *scheme) put_watermarks_quotas_access_pattern_out: kobject_put(&scheme->watermarks->kobj); scheme->watermarks =3D NULL; -put_quotas_access_pattern_out: +rmdir_put_quotas_access_pattern_out: + damon_sysfs_quotas_rm_dirs(scheme->quotas); kobject_put(&scheme->quotas->kobj); scheme->quotas =3D NULL; put_dests_out: --=20 2.47.3