From: "Miquel Sabaté Solà" <mssola@mssola.com>
To: Johannes Thumshirn <Johannes.Thumshirn@wdc.com>
Cc: "linux-btrfs@vger.kernel.org" <linux-btrfs@vger.kernel.org>,
"clm@fb.com" <clm@fb.com>, "dsterba@suse.com" <dsterba@suse.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] btrfs: fix memory leak when rejecting a non SINGLE data profile without an RST
Date: Tue, 07 Oct 2025 14:04:11 +0200 [thread overview]
Message-ID: <87y0pmj4uc.fsf@> (raw)
In-Reply-To: <0a87083a-cfef-4cf5-a73f-465797fa5759@wdc.com> (Johannes Thumshirn's message of "Tue, 7 Oct 2025 11:21:27 +0000")
[-- Attachment #1: Type: text/plain, Size: 2267 bytes --]
Johannes Thumshirn @ 2025-10-07 11:21 GMT:
> On 10/7/25 1:05 PM, Miquel Sabaté Solà wrote:
>
> Johannes Thumshirn @ 2025-10-07 10:13 GMT:
>
>
>
> Wouldn't it make more sense to only set "ret = -EINVAL" and run the rest
> of the functions cleanup? I.e. with your patch the chunk_map isn't freed
> as well.
>
>
> The short answer is that I wanted to keep the patch as minimal as
> possible while preserving the intent of the original code. From the
> original code (see commit 5906333cc4af ("btrfs: zoned: don't skip block
> group profile checks on conventional zones")), I get that the intent was
> to return as early as possible, so to not go through all the if
> statements below as they were not relevant on that case (that is, not
> just the one you mention where the cache->physical_map is
> freed). Falling through as you suggest would go into these if/else
> blocks, which I don't think is what we want to do.
>
> But it still sounds good that we should probably also free the chunk map
> as you say. Hence, maybe we could move the new "out_free:" label before
> the `if (!ret)` block right above where I've put it now. This way we
> ensure that the chunk map is freed, and we avoid going through the other
> if/else blocks which the aforementioned commit wanted to avoid.
>
> No it really should only be ret = -EINVAL without any new labels AFAICS.
>
> 1) the alloc_offset vs zone_capacity check is still usable
I don't think so as the ret value will be changed from -EINVAL (as set
from the previous if block) to -EIO. I believe that the intent from the
aforementioned commit was to return an -EINVAL on this case.
Maybe the reviewers from commit 5906333cc4af ("btrfs: zoned: don't skip
block group profile checks on conventional zones") can shed some light
into this...
>
> 2) the check if we're post the WP is skipped as ret != 0
>
> 3) we're hitting the else path and freeing the chunk map.
>
> As a last note, maybe for v2 I should add:
>
> Fixes: 5906333cc4af ("btrfs: zoned: don't skip block group profile checks on conventional zones")
>
> Correct
My email client detected your email as an HTML one. Is that so? Just as
a heads up for others as the reply format might look a bit funky :/
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 897 bytes --]
next prev parent reply other threads:[~2025-10-07 12:04 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-07 5:54 [PATCH] btrfs: fix memory leak when rejecting a non SINGLE data profile without an RST Miquel Sabaté Solà
2025-10-07 10:13 ` Johannes Thumshirn
2025-10-07 11:04 ` Miquel Sabaté Solà
[not found] ` <0a87083a-cfef-4cf5-a73f-465797fa5759@wdc.com>
2025-10-07 12:04 ` Miquel Sabaté Solà [this message]
2025-10-07 12:14 ` Johannes Thumshirn
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=87y0pmj4uc.fsf@ \
--to=mssola@mssola.com \
--cc=Johannes.Thumshirn@wdc.com \
--cc=clm@fb.com \
--cc=dsterba@suse.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-kernel@vger.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.