All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "SeongJae Park" <sj@kernel.org>
Cc: damon@lists.linux.dev
Subject: Re: [RFC PATCH 1/9] mm/damon/sysfs: kobject_del() target, context and kdamond dirs
Date: Tue, 16 Jun 2026 15:25:52 +0000	[thread overview]
Message-ID: <20260616152553.C97A01F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260616150844.88305-2-sj@kernel.org>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:

Pre-existing issues:
- [High] Incomplete fix: Missing kobject_del() in sysfs directory creation error paths leads to persistent -EEXIST collisions.
--

commit 1c0329e17860c383f4ab90a119f917db75ecacee
Author: SeongJae Park <sj@kernel.org>

mm/damon/sysfs: kobject_del() target, context and kdamond dirs

On CONFIG_DEBUG_KOBJECT_RELEASE enabled kernel, lack of kobject_del()
could cause directories creation failures due to the name conflicts.
Fix those issues for target, context and kdamond directories by adding
kobject_del() calls.

Fixes: c951cd3b8901 ("mm/damon: implement a minimal stub for sysfs-based DAMON interface")
Cc: <stable@vger.kernel.org> # 5.18.x

> diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c
> index 2e95e3bac774d..d93f7919c3ca1 100644
> --- a/mm/damon/sysfs.c
> +++ b/mm/damon/sysfs.c
> @@ -333,6 +333,7 @@ static void damon_sysfs_targets_rm_dirs(struct damon_sysfs_targets *targets)
>  
>  	for (i = 0; i < targets->nr; i++) {
>  		damon_sysfs_target_rm_dirs(targets_arr[i]);
> +		kobject_del(&targets_arr[i]->kobj);

[Severity: High]
This isn't a regression introduced by this patch, but while you are fixing
the -EEXIST name collisions in the rm_dirs() paths, are the same
kobject_del() calls also needed in the error paths of the corresponding
add_dirs() functions?

For example, in damon_sysfs_targets_add_dirs():

    mm/damon/sysfs.c:damon_sysfs_targets_add_dirs() {
        ...
            err = kobject_init_and_add(&target->kobj, ...);
            if (err)
                goto out;

            err = damon_sysfs_target_add_dirs(target);
            if (err)
                goto out;
        ...
    out:
        damon_sysfs_targets_rm_dirs(targets);
        kobject_put(&target->kobj);
        return err;
    }

If damon_sysfs_target_add_dirs() fails, kobject_put() is called without
kobject_del(). Does this result in a lingering directory and a persistent
-EEXIST if the user retries?

Similarly, in mm/damon/sysfs-schemes.c:damos_sysfs_populate_region_dir():

    mm/damon/sysfs-schemes.c:damos_sysfs_populate_region_dir() {
        ...
        if (kobject_init_and_add(&region->kobj,
                    &damon_sysfs_scheme_region_ktype,
                    &sysfs_regions->kobj, "%d",
                    sysfs_regions->nr_regions))
            goto out;
        if (damos_sysfs_region_add_dirs(region, ctx, r))
            goto out;
        ...
        sysfs_regions->nr_regions++;
        return;

    out:
        kobject_put(&region->kobj);
    }

If this fails, it returns without incrementing sysfs_regions->nr_regions.
Could the next region processed in the loop then attempt to initialize with
the exact same name string, immediately hitting -EEXIST and breaking the
entire region population loop?

>  		kobject_put(&targets_arr[i]->kobj);
>  	}
>  	targets->nr = 0;

[ ... ]

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260616150844.88305-1-sj@kernel.org?part=1

  reply	other threads:[~2026-06-16 15:25 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-16 15:08 [RFC PATCH 0/9] mm/damon/sysfs: kobject_del() directories that users can create/remove SeongJae Park
2026-06-16 15:08 ` [RFC PATCH 1/9] mm/damon/sysfs: kobject_del() target, context and kdamond dirs SeongJae Park
2026-06-16 15:25   ` sashiko-bot [this message]
2026-06-16 15:08 ` [RFC PATCH 2/9] mm/damon/sysfs: kobject_del() region dirs SeongJae Park
2026-06-16 15:29   ` sashiko-bot
2026-06-16 15:08 ` [RFC PATCH 3/9] mm/damon/sysfs-schemes: kobject_del() scheme dirs SeongJae Park
2026-06-16 15:27   ` sashiko-bot
2026-06-16 15:08 ` [RFC PATCH 4/9] mm/damon/sysfs-schemes: kobject_del() scheme region dirs SeongJae Park
2026-06-16 15:25   ` sashiko-bot
2026-06-16 15:08 ` [RFC PATCH 5/9] mm/damon/sysfs-schemes: kobject_del() scheme filter dirs SeongJae Park
2026-06-16 15:08 ` [RFC PATCH 6/9] mm/damon/sysfs-schemes: kobject_del() scheme quota goal dirs SeongJae Park
2026-06-16 15:27   ` sashiko-bot
2026-06-16 15:08 ` [RFC PATCH 7/9] mm/damon/sysfs-schemes: kobject_del() scheme action destination dirs SeongJae Park
2026-06-16 15:34   ` sashiko-bot
2026-06-16 15:08 ` [RFC PATCH 8/9] mm/damon/sysfs: kobject_del() probe filter dirs SeongJae Park
2026-06-16 15:27   ` sashiko-bot
2026-06-16 15:08 ` [RFC PATCH 9/9] mm/damon/sysfs: kobject_del() probe dirs SeongJae Park
2026-06-16 15:24   ` sashiko-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260616152553.C97A01F000E9@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=damon@lists.linux.dev \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=sj@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.