All of lore.kernel.org
 help / color / mirror / Atom feed
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 */



  reply	other threads:[~2009-03-10 16:30 UTC|newest]

Thread overview: 25+ 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 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 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.