From: Nick Piggin <npiggin@suse.de>
To: "Jorge Boncompte [DTI2]" <jorge@dti2.net>
Cc: ext-adrian.hunter@nokia.com, LKML <linux-kernel@vger.kernel.org>
Subject: Re: Error testing ext3 on brd ramdisk
Date: Tue, 10 Mar 2009 17:30:02 +0100 [thread overview]
Message-ID: <20090310163002.GC19352@wotan.suse.de> (raw)
In-Reply-To: <20090310161247.GA19352@wotan.suse.de>
On Tue, Mar 10, 2009 at 05:12:47PM +0100, Nick Piggin wrote:
> On Thu, Mar 05, 2009 at 01:12:25PM +0100, Jorge Boncompte [DTI2] wrote:
> > Jorge Boncompte [DTI2] escribió:
> > >Ok. I have modified the script to do...
> > >------------
> > >mount -no remount,ro /dev/ram0
> > >dd if=/dev/ram0 of=/tmp/config.bin bs=1k count=1000
> > >fsck.minix -fv /tmp/config.bin
> > >if [ $? != 0 ]; then
> > > echo "FATAL: Filesystem is corrupted"
> > > exit 2
> > >fi
> > >mount -no remount,rw /dev/ram0
> > >md5sum config.bin
> > >dd if=config.bin of=/dev/hda1
> > >echo $md5sum | dd of=/dev/hda1 bs=1k seek=1100 count=32
> > >------------
> > >... after some cycles of modifying files on the filesystem and trying to
> > >save it to disk...
> > >------------------
> > >fsck.minix: BusyBox v1.8.2 (2008-12-03 14:24:56 CET)
> > >Forcing filesystem check on /tmp/config.bin
> > >Unused inode 198 is marked as 'used' in the bitmap.
> > >Zone 393 is marked 'in use', but no file uses it.
> > >Zone 394 is marked 'in use', but no file uses it.
> > >
> > > 198 inodes used (58%)
> > > 395 zones used (39%)
> > >
> > > 163 regular files
> > > 24 directories
> > > 0 character device files
> > > 0 block device files
> > > 0 links
> > > 10 symbolic links
> > >------
> > > 197 files
> > >FATAL: Filesystem is corrupted
> > >-------------------
> > >
> >
> > If after getting the "FATAL: Filesystem is corrupted" message I do
> > "echo 3 > /proc/sys/vm/drop_caches" and rerun the script the filesystem
> > somehow got magically fixed (I mean fsck.minix does not report errors
> > and the image gets written to disk well ;-)
>
> OK, I can reproduce this. It really does seem to be due to buffercache
> going out of coherency for some reason, so the trick is that you have
> to fsck it while you have it mounted ro before remounting rw then modifying
> it then remounting ro and fscking again (the first fsck must bring in
> uptodate buffercache, and something is not being correctly invalidated).
>
> It is also not brd or minix specific -- I reproduced it with loop driver
> and ext2 too, and probably regular disk driver will have the same problem
> (ie. it is something in the buffercache).
>
> I don't know if this is the same problem as the ext3 issue -- the recipe
> for reproducing ext3 problem includes umount, which will invalidate all
> the buffercache unless something is holding the bdev open. But anyway I
> am making some progress with this problem so I will try solve it first.
>
> I can't think of any good reason why buffercache should be going out of
> sync here...
Ah, of course, it would be due to directory-in-pagecache. You need
the following patch if you expect this to work.
And that confirms the ext3 problem is a different one because it
doesn't use directory in pagecache I think. Well, I'll look at
that one tomorrow.
Thanks,
Nick
---
fs/super.c | 2 ++
1 file changed, 2 insertions(+)
Index: linux-2.6/fs/super.c
===================================================================
--- linux-2.6.orig/fs/super.c
+++ linux-2.6/fs/super.c
@@ -644,6 +644,8 @@ int do_remount_sb(struct super_block *sb
acct_auto_close(sb);
shrink_dcache_sb(sb);
fsync_super(sb);
+ if (flags & MS_RDONLY)
+ invalidate_bdev(sb->s_bdev);
/* If we are remounting RDONLY and current sb is read/write,
make sure there are no rw files opened */
next prev parent reply other threads:[~2009-03-10 16:30 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-14 13:25 Error testing ext3 on brd ramdisk Adrian Hunter
2009-02-27 18:08 ` Jorge Boncompte [DTI2]
2009-02-28 5:58 ` Nick Piggin
2009-03-02 17:42 ` Jorge Boncompte [DTI2]
2009-03-05 6:55 ` Nick Piggin
2009-03-05 9:19 ` Jorge Boncompte [DTI2]
2009-03-05 9:46 ` Nick Piggin
2009-03-05 10:56 ` Jorge Boncompte [DTI2]
2009-03-05 12:12 ` Jorge Boncompte [DTI2]
2009-03-10 16:12 ` Nick Piggin
2009-03-10 16:30 ` Nick Piggin [this message]
2009-03-10 16:49 ` Jorge Boncompte [DTI2]
2009-03-11 2:19 ` Nick Piggin
2009-03-13 17:06 ` Jorge Boncompte [DTI2]
2009-03-17 9:40 ` Denis Karpov
2009-03-18 12:11 ` Nick Piggin
2009-03-18 13:42 ` Jan Kara
2009-03-20 12:24 ` Denis Karpov
2009-03-20 12:49 ` Denis Karpov
2009-03-20 13:35 ` Denis Karpov
2009-03-05 10:45 ` Nick Piggin
2009-03-05 11:54 ` Jorge Boncompte [DTI2]
2009-03-06 7:47 ` Adrian Hunter
2009-03-10 11:03 ` Nick Piggin
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=20090310163002.GC19352@wotan.suse.de \
--to=npiggin@suse.de \
--cc=ext-adrian.hunter@nokia.com \
--cc=jorge@dti2.net \
--cc=linux-kernel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox