From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Theodore Ts'o <tytso@mit.edu>, Sasha Levin <sashal@kernel.org>,
linux-ext4@vger.kernel.org
Subject: [PATCH AUTOSEL 4.19 17/18] ext4: convert BUG_ON's to WARN_ON's in mballoc.c
Date: Fri, 24 Apr 2020 08:23:54 -0400 [thread overview]
Message-ID: <20200424122355.10453-17-sashal@kernel.org> (raw)
In-Reply-To: <20200424122355.10453-1-sashal@kernel.org>
From: Theodore Ts'o <tytso@mit.edu>
[ Upstream commit 907ea529fc4c3296701d2bfc8b831dd2a8121a34 ]
If the in-core buddy bitmap gets corrupted (or out of sync with the
block bitmap), issue a WARN_ON and try to recover. In most cases this
involves skipping trying to allocate out of a particular block group.
We can end up declaring the file system corrupted, which is fair,
since the file system probably should be checked before we proceed any
further.
Link: https://lore.kernel.org/r/20200414035649.293164-1-tytso@mit.edu
Google-Bug-Id: 34811296
Google-Bug-Id: 34639169
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/ext4/mballoc.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index 71121fcf9e8cc..8dd54a8a03610 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -1936,7 +1936,8 @@ void ext4_mb_complex_scan_group(struct ext4_allocation_context *ac,
int free;
free = e4b->bd_info->bb_free;
- BUG_ON(free <= 0);
+ if (WARN_ON(free <= 0))
+ return;
i = e4b->bd_info->bb_first_free;
@@ -1959,7 +1960,8 @@ void ext4_mb_complex_scan_group(struct ext4_allocation_context *ac,
}
mb_find_extent(e4b, i, ac->ac_g_ex.fe_len, &ex);
- BUG_ON(ex.fe_len <= 0);
+ if (WARN_ON(ex.fe_len <= 0))
+ break;
if (free < ex.fe_len) {
ext4_grp_locked_error(sb, e4b->bd_group, 0, 0,
"%d free clusters as per "
--
2.20.1
next prev parent reply other threads:[~2020-04-24 12:28 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-24 12:23 [PATCH AUTOSEL 4.19 01/18] net: fec: set GPR bit on suspend by DT configuration Sasha Levin
2020-04-24 12:23 ` [PATCH AUTOSEL 4.19 02/18] x86: hyperv: report value of misc_features Sasha Levin
2020-04-24 12:23 ` [PATCH AUTOSEL 4.19 03/18] xfs: acquire superblock freeze protection on eofblocks scans Sasha Levin
2020-04-24 12:23 ` [PATCH AUTOSEL 4.19 04/18] xfs: fix partially uninitialized structure in xfs_reflink_remap_extent Sasha Levin
2020-04-24 12:23 ` [PATCH AUTOSEL 4.19 05/18] ALSA: hda: Keep the controller initialization even if no codecs found Sasha Levin
2020-04-24 12:23 ` [PATCH AUTOSEL 4.19 06/18] ALSA: hda: Explicitly permit using autosuspend if runtime PM is supported Sasha Levin
2020-04-24 12:23 ` [PATCH AUTOSEL 4.19 07/18] scsi: target: fix PR IN / READ FULL STATUS for FC Sasha Levin
2020-04-24 12:23 ` [PATCH AUTOSEL 4.19 08/18] scsi: target: tcmu: reset_ring should reset TCMU_DEV_BIT_BROKEN Sasha Levin
2020-04-24 12:23 ` [PATCH AUTOSEL 4.19 09/18] objtool: Fix CONFIG_UBSAN_TRAP unreachable warnings Sasha Levin
2020-04-24 12:23 ` [PATCH AUTOSEL 4.19 10/18] objtool: Support Clang non-section symbols in ORC dump Sasha Levin
2020-04-24 12:23 ` [PATCH AUTOSEL 4.19 11/18] xen/xenbus: ensure xenbus_map_ring_valloc() returns proper grant status Sasha Levin
2020-04-24 12:23 ` [PATCH AUTOSEL 4.19 12/18] ALSA: hda: call runtime_allow() for all hda controllers Sasha Levin
2020-04-24 12:23 ` [PATCH AUTOSEL 4.19 13/18] net/cxgb4: Check the return from t4_query_params properly Sasha Levin
2020-04-24 12:23 ` [PATCH AUTOSEL 4.19 14/18] arm64: Delete the space separator in __emit_inst Sasha Levin
2020-04-24 12:23 ` [PATCH AUTOSEL 4.19 15/18] ext4: use matching invalidatepage in ext4_writepage Sasha Levin
2020-04-24 12:23 ` [PATCH AUTOSEL 4.19 16/18] ext4: increase wait time needed before reuse of deleted inode numbers Sasha Levin
2020-04-24 12:23 ` Sasha Levin [this message]
2020-04-24 12:23 ` [PATCH AUTOSEL 4.19 18/18] hwmon: (jc42) Fix name to have no illegal characters 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=20200424122355.10453-17-sashal@kernel.org \
--to=sashal@kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).