linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jens Axboe <jens.axboe@oracle.com>
To: "Jörn Engel" <joern@logfs.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	David Woodhouse <dwmw2@infradead.org>,
	linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org,
	Christoph Hellwig <hch@infradead.org>,
	Paolo Minazzi <paolo.minazzi@gmail.com>
Subject: Re: [Patch] Catch filesystems lacking s_bdi
Date: Mon, 26 Apr 2010 16:38:03 +0200	[thread overview]
Message-ID: <20100426143803.GM27497@kernel.dk> (raw)
In-Reply-To: <20100426143253.GB4364@logfs.org>

On Mon, Apr 26 2010, Jörn Engel wrote:
> > Yeah, it's a bad situation to be in. I changed that BUG_ON() to a
> > WARN_ON(). I'm not too worried about that part, I'm more worried about
> > the file system changed. OTOH, they do lack proper flushing now, so it's
> > likely not a huge risk from that perspective.
> 
> It is worse still.  Using mtd->backing_dev_info results in 
> kernel BUG at fs/fs-writeback.c:157
> 
> which is BUG_ON(!work->seen); in bdi_queue_work().  Logfs is affected
> and I bet jffs2 is as well.  So much for dwmw2 or me actually testing
> the fix. :(
> 
> I did a hexdump to see what sb->s_bdi actually contained and the result
> was this:
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
> 00 00 00 00 00 00 00 00                          ........
> 
> Which should be mtd_bdi_unmappable.  And at this point I have to admit
> being clueless.  What exactly should a struct backing_dev_info contain
> and for what purposes?  And where is this documented?

The important bit is that each bdi must be initialized and registered if
it's going to be handling dirty data, it can't just be a static
placeholder. See the bdi_setup_and_register() helper I added.

-- 
Jens Axboe


  reply	other threads:[~2010-04-26 14:38 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-17 18:40 [PATCH] [MTD] Fix JFFS2 sync silent failure Jörn Engel
2010-04-19  7:38 ` Jens Axboe
2010-04-19 10:15   ` Jörn Engel
2010-04-19 10:20     ` Jens Axboe
2010-04-19 11:39       ` Jörn Engel
2010-04-22  5:54       ` Jörn Engel
2010-04-22  6:26         ` Jörn Engel
2010-04-22 14:25           ` Linus Torvalds
2010-04-22 14:33             ` Linus Torvalds
2010-04-22 16:27               ` Jens Axboe
2010-04-22 20:33                 ` [Patch] Catch filesystems lacking s_bdi Jörn Engel
2010-04-23 10:05                   ` Jens Axboe
2010-04-23 20:55                     ` Jörn Engel
2010-04-26  9:48                       ` Jens Axboe
2010-04-26 14:32                         ` Jörn Engel
2010-04-26 14:38                           ` Jens Axboe [this message]
2010-04-26 14:45                             ` Jens Axboe
2010-04-26 16:30                               ` [PATCH 1/2] [MTD] Move mtd_bdi_*mappable to mtdcore.c Jörn Engel
2010-04-26 16:31                                 ` [PATCH 2/2] [MTD] Call bdi_init() and bdi_register() Jörn Engel
2010-04-26 17:02                                   ` Jens Axboe
2010-04-26 17:12                                     ` Jörn Engel
2010-04-27  7:52                                       ` Jens Axboe
2010-04-27  8:11                                         ` Paolo Minazzi
2010-04-27  8:16                                           ` Jens Axboe
2010-04-27 11:29                                         ` Jörn Engel
2010-04-27 11:33                                           ` Jens Axboe
2010-04-27  9:01                                   ` Paolo Minazzi
2010-04-27  9:16                                     ` Jens Axboe
2010-04-27  9:26                                       ` Paolo Minazzi
2010-04-27  9:29                                         ` Jens Axboe
2010-04-27  9:36                                           ` Paolo Minazzi
2010-04-27 11:17                                     ` Jörn Engel
2010-04-27 11:31                                       ` Paolo Minazzi
2010-04-27 11:40                                         ` Jörn Engel
2010-04-27 11:48                                           ` [PATCH] [LogFS] Return -EINVAL if filesystem image doesn't match Jörn Engel
2010-04-27 12:53                                             ` Paolo Minazzi
2010-04-27 11:54                                           ` [PATCH 2/2] [MTD] Call bdi_init() and bdi_register() Paolo Minazzi
2010-04-27 12:05                                             ` Jörn Engel
2010-04-26 17:01                                 ` [PATCH 1/2] [MTD] Move mtd_bdi_*mappable to mtdcore.c Jens Axboe
2010-04-26 17:08                                   ` Jörn Engel
2010-04-26 17:10                                     ` Jens Axboe
2010-04-22  9:03         ` [PATCH] [MTD] Fix JFFS2 sync silent failure Jens Axboe
2010-04-22 10:39           ` Jens Axboe
2010-04-22 10:58             ` David Woodhouse
2010-04-22 11:05               ` Jens Axboe
2010-04-22 11:55             ` Jörn Engel
2010-04-22 12:08               ` Jens Axboe
2010-04-22 12:17                 ` Jörn Engel

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=20100426143803.GM27497@kernel.dk \
    --to=jens.axboe@oracle.com \
    --cc=dwmw2@infradead.org \
    --cc=hch@infradead.org \
    --cc=joern@logfs.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=paolo.minazzi@gmail.com \
    --cc=torvalds@linux-foundation.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 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).