[Patch] Catch filesystems lacking s_bdi

Jens Axboe jens.axboe at oracle.com
Fri Apr 23 06:05:32 EDT 2010


On Thu, Apr 22 2010, Jörn Engel wrote:
> On Thu, 22 April 2010 18:27:10 +0200, Jens Axboe wrote:
> > 
> > > Jens - please help fix this up.
> > 
> > Of course, I already posted a series of patches to fix this up. I want
> > to test them a bit, and I'll send them in tomorrow.
> 
> How about something like this to catch future cases?  It compiles and
> survived a test boot, so it does seem to work for the common cases like
> tmpfs, procfs, etc.
> 
> Jens, you know the bdi code 10x better than me, would this work?

Looks sane, it's a good start. I think we should augment that with a
check to ensure that we don't ever add dirty inodes to this bdi, since
it's not going to be flushed.

Something like a:

        WARN_ON(bdi == &noop_backing_dev_info);

to __mark_inode_dirty(). Looking at the code it should already trigger a
warning, since it'll check for BDI_CAP_NO_WRITEBACK (which isn't set
for noop_backing_dev_info) and the fact that noop-bdi isn't registered
to begin with.

So it's probably safe and good enough as-is, I'll add it. Thanks!

-- 
Jens Axboe




More information about the linux-mtd mailing list