From: Liu Bo <bo.li.liu@oracle.com>
To: dsterba@suse.cz
Cc: "Holger Hoffstätte" <holger@applied-asynchrony.com>,
linux-btrfs@vger.kernel.org
Subject: Re: [PATCH 1/7] Btrfs: replace BUG() with WARN_ONCE in raid56
Date: Wed, 12 Oct 2016 12:14:44 -0700 [thread overview]
Message-ID: <20161012191444.GA4764@localhost.localdomain> (raw)
In-Reply-To: <20161012150655.GS11398@twin.jikos.cz>
On Wed, Oct 12, 2016 at 05:06:55PM +0200, David Sterba wrote:
> On Mon, May 16, 2016 at 10:32:48AM +0200, David Sterba wrote:
> > On Sun, May 15, 2016 at 04:19:28PM +0200, Holger Hoffstätte wrote:
> > > On 05/14/16 02:06, Liu Bo wrote:
> > > > This BUG() has been triggered by a fuzz testing image, but in fact
> > > > btrfs can handle this gracefully by returning -EIO.
> > > >
> > > > Thus, use WARN_ONCE for warning purpose and don't leave a possible
> > > > kernel panic.
> > > >
> > > > Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
> > > > ---
> > > > fs/btrfs/raid56.c | 2 +-
> > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/fs/btrfs/raid56.c b/fs/btrfs/raid56.c
> > > > index 0b7792e..863f7fe 100644
> > > > --- a/fs/btrfs/raid56.c
> > > > +++ b/fs/btrfs/raid56.c
> > > > @@ -2139,7 +2139,7 @@ int raid56_parity_recover(struct btrfs_root *root, struct bio *bio,
> > > >
> > > > rbio->faila = find_logical_bio_stripe(rbio, bio);
> > > > if (rbio->faila == -1) {
> > > > - BUG();
> > > > + WARN_ONCE(1, KERN_WARNING "rbio->faila is -1\n");
> > >
> > > I'm generally in favor of not BUGing out for no good reason, but what
> > > is e.g. an admin (or user) supposed to do when he sees this message?
> > > Same for the other rather cryptic WARNs - they contain no actionable
> > > information, and are most likely going to be ignored as "debug spam".
> > > IMHO things that can be ignored can be deleted.
> >
> > Agreed, the way this patchset repalces BUG on is very confusing.
> > WARN_ONCE is a global state, the message does not even print on which
> > filesystem the error happened. The only way to reset the state is to
> > unload the module.
> >
> > This should be handled as a corruption, no matter if it's fuzzed or not,
> > report more details about what is corrupted or what was expected.
>
> Looking again at the patch, it compares an inode property (a range to
> cow) against a global filesystem size, stored in superblock. This does
> not IMO belong here, either we'd have to do such check everywhere (and
> expect that it could really happen) or it should be removed completely.
(Are we talking about "[PATCH 2/7] Btrfs: replace BUG_ON with WARN_ONCE in cow_file_range"?)
In theory we don't need to do such a check because we've gone through
the reservation part which ensures that we have enough space,
whether super::total_bytes is valid can be verified during the mount
stage. I prefer to removing it.
Thanks,
-liubo
next prev parent reply other threads:[~2016-10-12 19:10 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-14 0:06 [PATCH 1/7] Btrfs: replace BUG() with WARN_ONCE in raid56 Liu Bo
2016-05-14 0:06 ` [PATCH 2/7] Btrfs: replace BUG_ON with WARN_ONCE in cow_file_range Liu Bo
2016-05-14 0:06 ` [PATCH 3/7] Btrfs: check if extent buffer is aligned to sectorsize Liu Bo
2016-05-14 10:30 ` Qu Wenruo
2016-05-16 18:01 ` Liu Bo
2016-05-17 9:39 ` David Sterba
2016-05-17 17:38 ` Liu Bo
2016-05-14 0:06 ` [PATCH 4/7] Btrfs: free sys_array eb as soon as possible Liu Bo
2016-05-16 8:45 ` David Sterba
2016-05-14 0:07 ` [PATCH 5/7] Btrfs: replace BUG_ON with WARN in merge_bio Liu Bo
2016-05-16 8:44 ` David Sterba
2016-05-16 17:24 ` Liu Bo
2016-05-17 9:55 ` David Sterba
2016-05-17 17:30 ` Liu Bo
2016-05-18 13:54 ` David Sterba
2016-05-14 0:07 ` [PATCH 6/7] Btrfs: fix eb memory leak due to readpage failure Liu Bo
2016-05-18 19:38 ` Josef Bacik
2016-05-14 0:07 ` [PATCH 7/7] Btrfs: fix memory leak due to invalid btree height Liu Bo
2016-09-06 16:50 ` David Sterba
2016-09-06 22:04 ` Liu Bo
2016-05-14 10:42 ` [PATCH 1/7] Btrfs: replace BUG() with WARN_ONCE in raid56 Qu Wenruo
2016-05-15 14:19 ` Holger Hoffstätte
2016-05-16 8:32 ` David Sterba
2016-10-12 15:06 ` David Sterba
2016-10-12 19:14 ` Liu Bo [this message]
2016-06-30 0:57 ` [PATCH v2] Btrfs: remove BUG() " Liu Bo
2016-07-26 16:58 ` David Sterba
2016-07-27 5:11 ` Liu Bo
2016-07-27 18:56 ` [PATCH v3] " Liu Bo
2016-07-29 16:53 ` David Sterba
2016-07-29 17:57 ` [PATCH v4] " Liu Bo
2016-08-24 12:11 ` David Sterba
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=20161012191444.GA4764@localhost.localdomain \
--to=bo.li.liu@oracle.com \
--cc=dsterba@suse.cz \
--cc=holger@applied-asynchrony.com \
--cc=linux-btrfs@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.