Hello

On Wednesday 13 September 2006 18:00, Jeff Mahoney wrote:
> Vladimir V. Saveliev wrote:
> > Hello
> >
> > On Monday 04 September 2006 23:26, [EMAIL PROTECTED] wrote:
> >> Hi,
> >>
> >>   I am observing the following Reiser failure:
> >>
> >>   I am trying to use camorama with a Creative WebCam Live spca5xx driver
> >> (recently downloaded and compiled) . Camorama does not start and
> >> computer freezes (no response to mouse, or keyboard. Can't change to
> >> terminal window.
> >>
> >>   Reset or pull plug leaves Knoppix 5.0.1-DVD unbootable:
> >>
> >>   The actual message from GRUB is inconsistent filesystem?! From a boot
> >> loader?
> >
> > after unclean shutdown journal reply is necessary to return reiserfs to
> > consistent state. Maybe GRUB did not do that?
>
> Grub uses the journal in a read-only mode. It doesn't replay it in a
> writable fashion. When grub needs a block, it scans the blocks used in
> the journal, and uses the most recent copy it finds there before looking
> out to the rest of the file system.
>
> >>   The 'fix' is even stranger. I execute fsck.reiserfs from another OS
> >> partition on the Knoppix 5.0.1-DVD partition (takes forever).
> >
> > Did fsck complete? What did it report?
> >
> >> Somehow
> >> 'reading' the Knoppix filesystem 'fixes' whatever was preventing Knoppix
> >> 5.0.1-DVD from booting.
> >
> > fsck replayed the journal.
> > Does camorama work now?
> >
> > If it still causes computer freeze - can you please install serial or
> > network console and try to catch what does kernel output when it freezes.
>
> If the system doesn't work still, I believe grub has a debugging output
> mode that could yield more information. You'd need to rebuild and
> reinstall it.
>
knoppix 5.0.1 uses grub-0.97. John, can you, please, patch it with the 
attached patch, build and re-install as boot loader it and try to reproduce 
the problem. Hopefuly, added output will help us to understand why grub finds 
the filesystem is inconsistent.




> -Jeff
diff -puN stage2/fsys_reiserfs.c~reiserfs-debug stage2/fsys_reiserfs.c
--- grub-0.97/stage2/fsys_reiserfs.c~reiserfs-debug	2006-09-13 18:41:43.000000000 +0400
+++ grub-0.97-vs/stage2/fsys_reiserfs.c	2006-09-13 18:45:40.000000000 +0400
@@ -22,7 +22,7 @@
 #include "shared.h"
 #include "filesys.h"
 
-#undef REISERDEBUG
+#define REISERDEBUG 1
 
 /* Some parts of this code (mainly the structures and defines) are
  * from the original reiser fs code, as found in the linux kernel.
@@ -664,6 +664,9 @@ reiserfs_mount (void)
   return 1;
 }
 
+#define fs_corrupted()							\
+  printf("%s: %d: %s: fs inconsistency is found\n", __FILE__, __LINE__, __FUNCTION__)
+
 /***************** TREE ACCESSING METHODS *****************************/
 
 /* I assume you are familiar with the ReiserFS tree, if not go to
@@ -713,6 +716,7 @@ read_tree_node (unsigned int blockNr, in
   /* Make sure it has the right node level */
   if (BLOCKHEAD (cache)->blk_level != depth)
     {
+      fs_corrupted();
       errnum = ERR_FSYS_CORRUPT;
       return 0;
     }
@@ -878,6 +882,7 @@ search_stat (__u32 dir_id, __u32 objecti
 	}
       ih++;
     }
+  fs_corrupted();
   errnum = ERR_FSYS_CORRUPT;
   return 0;
 }
@@ -1058,8 +1063,10 @@ reiserfs_dir (char *dirname)
 	  if (! next_key ()
 	      || reiserfs_read (linkbuf, filemax) != filemax)
 	    {
-	      if (! errnum)
+	      if (! errnum) {
+		fs_corrupted();
 		errnum = ERR_FSYS_CORRUPT;
+	      }
 	      return 0;
 	    }
 

_

Reply via email to