All of lore.kernel.org
 help / color / mirror / Atom feed
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.9 11/13] ext4: convert BUG_ON's to WARN_ON's in mballoc.c
Date: Fri, 24 Apr 2020 08:24:44 -0400	[thread overview]
Message-ID: <20200424122447.10882-11-sashal@kernel.org> (raw)
In-Reply-To: <20200424122447.10882-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 c18668e3135e8..ac13de1a7e420 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -1944,7 +1944,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;
 
@@ -1965,7 +1966,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


  parent reply	other threads:[~2020-04-24 12:26 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-24 12:24 [PATCH AUTOSEL 4.9 01/13] xfs: fix partially uninitialized structure in xfs_reflink_remap_extent Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.9 02/13] ALSA: hda: Don't release card at firmware loading error Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.9 03/13] ALSA: hda: Keep the controller initialization even if no codecs found Sasha Levin
2020-04-24 12:24   ` Sasha Levin
2020-04-24 12:45   ` Takashi Iwai
2020-04-24 12:45     ` Takashi Iwai
2020-05-01  0:56     ` Sasha Levin
2020-05-01  0:56       ` Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.9 04/13] scsi: target: fix PR IN / READ FULL STATUS for FC Sasha Levin
2020-04-24 12:24   ` Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.9 05/13] scsi: sg: add sg_remove_request in sg_common_write Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.9 06/13] objtool: Fix CONFIG_UBSAN_TRAP unreachable warnings Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.9 07/13] objtool: Support Clang non-section symbols in ORC dump Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.9 08/13] objtool: Fix switch table detection in .text.unlikely Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.9 09/13] xen/xenbus: ensure xenbus_map_ring_valloc() returns proper grant status Sasha Levin
2020-04-24 12:24   ` Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.9 10/13] net/cxgb4: Check the return from t4_query_params properly Sasha Levin
2020-04-24 12:24 ` Sasha Levin [this message]
2020-04-24 12:24 ` [PATCH AUTOSEL 4.9 12/13] of: unittest: kmemleak on changeset destroy Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.9 13/13] 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=20200424122447.10882-11-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 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.