I'm not quite sure why fsck is failing here, but this patch may give me
a little more info, and should also let fsck make some further progress
(or I could be mistaken and the patch won't make any difference). Can
you give it a try?
Thanks,
Shaggy
On Mon, 2006-01-23 at 14:23 -0700, Brent Kearney wrote:
> Hi again,
>
> I forgot to mention that its jfs version 1.1.10.
>
> Best,
> Brent
>
> On Jan 23, 2006, at 14:04, Brent Kearney wrote:
>
> > Hello,
> >
> > I'm running linux 2.6.14-gentoo-r4 and the system power got
> > yanked. JFS is is on the / filesystem, which is also an md device,
> > raid0. The fsck'ing eventually comes to an "exit code 8" error.
> > What do I do from here? I seem to be able to read the files on
> > this filesytem, but I cannot boot in the current state. There must
> > be a way to fix this, but it appears that fsck doesn't know how to.
> >
> > The details follow, transcripted from my PC's monitor:
> >
> > On boot-up, the system loads normally until the filesystem check,
> > then encounters these problems:
> >
> > Current device: /dev/md2
> > Filesystem size in blocks: 17253760
> > **Phase 0 - Replay Journal Log
> > logredo failed (rc=-245). fsck continuing.
> > **Phase 1 - Check Blocks, Files/Directories, and Directory Entries
> > **Phase 2 - Count links
> > Incorrect link counts have been detected. Will correct.
> > **Phase 3 - Duplicate block Rescan and Directory Connectedness
> > * Filesystem couldn't be fixed :(
> >
> > Then I had the option of logging in as root, and I ran: jfs_fsck -a
> > -v /dev/md/2:
> >
> > Open(...READ/WRITE EXCLUDSIVE...) returned rc = 0
> > Primary superblock is valid.
> > The type of file system for the device is JFS.
> > Block size in bytes: 4096
> > filesystem size in blocks: 17253760
> > **Phase 0 - Replay Journal Log
> > LOGREDO: allocating for ReDoPage: (d) 4096 bytes
> > " "
> > ... about 20 of these lines
> > LOGREDO: Address (0x01ffffff8) of next log record is out of range.
> > logredo failed (rc=-245) fsck continuing.
> >
> > **Phase 1 - Check Blocks, Files/Directories, and Directory Entries
> > Duplicate reference to 10 block(s) beginning at offset 8411388
> > found in file system object FF1019921.
> > Inode F1019921 has references to cross linked blocks.
> > Filesystem object FF1019921 has corrupt data (39).
> >
> > **Phase 2 - Count links
> > Inode F41233 has incorrect link count.
> > Incorrect link counts have been detected. Will correct.
> > **Phase 3 - Duplicate block Rescan and Directory Connectedness
> > processing terminated: 1/23/2006 5:54:17 with return code: 10081
> > exit code: 8.
> >
> > ------
> >
> > Any help would be greatly appreciated!
> >
> > Brent
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > -------------------------------------------------------
> > This SF.net email is sponsored by: Splunk Inc. Do you grep through
> > log files
> > for problems? Stop! Download the new AJAX search engine that makes
> > searching your log files as easy as surfing the web. DOWNLOAD
> > SPLUNK!
> > http://sel.as-us.falkag.net/sel?
> > cmd=lnk&kid=103432&bid=230486&dat=121642
> > _______________________________________________
> > Jfs-discussion mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/jfs-discussion
>
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
> for problems? Stop! Download the new AJAX search engine that makes
> searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
> _______________________________________________
> Jfs-discussion mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jfs-discussion
>
--
David Kleikamp
IBM Linux Technology Center
Index: fsck/fsckxtre.c
===================================================================
RCS file: /cvsroot/jfs/jfsutils/fsck/fsckxtre.c,v
retrieving revision 1.17
diff -u -p -r1.17 fsckxtre.c
--- fsck/fsckxtre.c 11 Jan 2006 18:12:45 -0000 1.17
+++ fsck/fsckxtre.c 24 Jan 2006 16:07:09 -0000
@@ -326,6 +326,12 @@ int process_valid_data(struct dinode *in
}
}
out:
+ if (pvd_rc) {
+ printf("=== process_valid_data ignorning return code of %d\n",
+ pvd_rc);
+ printf("=== inum = %d\n", inoidx);
+ pvd_rc = 0;
+ }
return (pvd_rc);
}