From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Baokun Li <libaokun1@huawei.com>, Jan Kara <jack@suse.cz>,
Theodore Ts'o <tytso@mit.edu>, Sasha Levin <sashal@kernel.org>,
adilger.kernel@dilger.ca, linux-ext4@vger.kernel.org
Subject: [PATCH AUTOSEL 5.10 02/16] ext4: avoid allocating blocks from corrupted group in ext4_mb_find_by_goal()
Date: Wed, 7 Feb 2024 16:26:42 -0500 [thread overview]
Message-ID: <20240207212700.4287-2-sashal@kernel.org> (raw)
In-Reply-To: <20240207212700.4287-1-sashal@kernel.org>
From: Baokun Li <libaokun1@huawei.com>
[ Upstream commit 832698373a25950942c04a512daa652c18a9b513 ]
Places the logic for checking if the group's block bitmap is corrupt under
the protection of the group lock to avoid allocating blocks from the group
with a corrupted block bitmap.
Signed-off-by: Baokun Li <libaokun1@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20240104142040.2835097-8-libaokun1@huawei.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/ext4/mballoc.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index d7724601f42b..e528ae0618fe 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -1893,12 +1893,10 @@ int ext4_mb_find_by_goal(struct ext4_allocation_context *ac,
if (err)
return err;
- if (unlikely(EXT4_MB_GRP_BBITMAP_CORRUPT(e4b->bd_info))) {
- ext4_mb_unload_buddy(e4b);
- return 0;
- }
-
ext4_lock_group(ac->ac_sb, group);
+ if (unlikely(EXT4_MB_GRP_BBITMAP_CORRUPT(e4b->bd_info)))
+ goto out;
+
max = mb_find_extent(e4b, ac->ac_g_ex.fe_start,
ac->ac_g_ex.fe_len, &ex);
ex.fe_logical = 0xDEADFA11; /* debug value */
@@ -1931,6 +1929,7 @@ int ext4_mb_find_by_goal(struct ext4_allocation_context *ac,
ac->ac_b_ex = ex;
ext4_mb_use_best_found(ac, e4b);
}
+out:
ext4_unlock_group(ac->ac_sb, group);
ext4_mb_unload_buddy(e4b);
--
2.43.0
next prev parent reply other threads:[~2024-02-07 21:27 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-07 21:26 [PATCH AUTOSEL 5.10 01/16] ext4: avoid allocating blocks from corrupted group in ext4_mb_try_best_found() Sasha Levin
2024-02-07 21:26 ` Sasha Levin [this message]
2024-02-07 21:26 ` [PATCH AUTOSEL 5.10 03/16] dmaengine: ti: edma: Add some null pointer checks to the edma_probe Sasha Levin
2024-02-07 21:26 ` [PATCH AUTOSEL 5.10 04/16] ASoC: codecs: wcd934x: drop unneeded regulator include Sasha Levin
2024-02-18 19:10 ` Pavel Machek
2024-02-07 21:26 ` [PATCH AUTOSEL 5.10 05/16] regulator: pwm-regulator: Add validity checks in continuous .get_voltage Sasha Levin
2024-02-07 21:26 ` [PATCH AUTOSEL 5.10 06/16] nvmet-tcp: fix nvme tcp ida memory leak Sasha Levin
2024-02-07 21:26 ` [PATCH AUTOSEL 5.10 07/16] ASoC: sunxi: sun4i-spdif: Add support for Allwinner H616 Sasha Levin
2024-02-07 21:26 ` Sasha Levin
2024-02-07 21:26 ` [PATCH AUTOSEL 5.10 08/16] spi: sh-msiof: avoid integer overflow in constants Sasha Levin
2024-02-07 21:26 ` [PATCH AUTOSEL 5.10 09/16] netfilter: conntrack: check SCTP_CID_SHUTDOWN_ACK for vtag setting in sctp_new Sasha Levin
2024-02-07 21:26 ` [PATCH AUTOSEL 5.10 10/16] nvme-fc: do not wait in vain when unloading module Sasha Levin
2024-02-07 21:26 ` [PATCH AUTOSEL 5.10 11/16] nvmet-fcloop: swap the list_add_tail arguments Sasha Levin
2024-02-07 21:26 ` [PATCH AUTOSEL 5.10 12/16] nvmet-fc: release reference on target port Sasha Levin
2024-02-07 21:26 ` [PATCH AUTOSEL 5.10 13/16] nvmet-fc: do not tack refs on tgtports from assoc Sasha Levin
2024-02-18 19:08 ` Pavel Machek
2024-02-22 12:24 ` Sasha Levin
2024-02-07 21:26 ` [PATCH AUTOSEL 5.10 14/16] nvmet-fc: abort command when there is no binding Sasha Levin
2024-02-07 21:26 ` [PATCH AUTOSEL 5.10 15/16] ext4: correct the hole length returned by ext4_map_blocks() Sasha Levin
2024-02-07 21:26 ` [PATCH AUTOSEL 5.10 16/16] Input: i8042 - add Fujitsu Lifebook U728 to i8042 quirk table Sasha Levin
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=20240207212700.4287-2-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=adilger.kernel@dilger.ca \
--cc=jack@suse.cz \
--cc=libaokun1@huawei.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=tytso@mit.edu \
/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.