Oops in 2.1.125 mounting bad VFAT partition

John Hayward-Warburton (linux@billabong.demon.co.uk)
Sat, 17 Oct 1998 13:02:17 +0000 (GMT)


Hello.

While trying to recover my wife's badly damaged FAT32 partition (a
power glitch had caused the first FAT and most of the second to be
overwritten with garbage (A Windows printer driver), a mount of this
partition followed by an ls caused the following interesting errors
(the ls hung, not even kill -s 9 would remove it). Yes, I know
the FAT was very hurt, and I probably wouldn't get much from it
anyway, but perhaps the Oops-es are something that shouldn't happen?
Here it is anyway:

kernel: [MS-DOS FS Rel. 12,FAT 0,check=n,conv=b,uid=0,gid=0,umask=022]
kernel: [me=0xff,cs=0,#f=0,fs=32705,fl=65473,ds=32705,de=0,data=32705,se=65280,ts=0,ls=32628,rc=0,fc=4294967295]
kernel: Transaction block size = 512
kernel: VFS: Can't find a valid MSDOS filesystem on dev 16:41.
kernel: Oops: 0000
kernel: CPU: 0
kernel: EIP: 0010:[<c014a9e1>]
kernel: EFLAGS: 00010246
kernel: eax: 0000dce5 ebx: 00000000 ecx: c0143c0b edx: c1ee2040
kernel: esi: c1ee3324 edi: 00000000 ebp: c3c55860 esp: c2a2bf28
kernel: ds: 0018 es: 0018 ss: 0018
kernel: Process ls (pid: 260, process nr: 40, stackpage=c2a2b000)
kernel: Stack: c2a2bf88 c3c558ac 00000000 00000000 00000001 00000840 00000000 00000840
kernel: 00000000 00001dd2 c0129ac6 c3c55860 c1ee2040 00000000 c2a2bf88 c1ee4005
kernel: 00000000 c0129c9a c1f8cb80 c2a2bf88 c1ee4000 c1ee4000 08054828 bffff974
kernel: Call Trace: [<c0129ac6>] [<c0129c9a>] [<c0129d94>] [<c0127dd6>] [<c0107974>]
kernel: Code: 8b 40 08 8b 40 44 89 42 4c 56 52 e8 97 3a fe ff 31 c0 83 c4
kernel: iput: Aieee, semaphore in use inode 16:41/7589, count=56549
kernel: iput: Aieee, atomic write semaphore in use inode 16:41/7589, count=56549
kernel: iput: Aieee, semaphore in use inode 16:41/7619, count=56549
kernel: iput: Aieee, atomic write semaphore in use inode 16:41/7619, count=56549
kernel: Oops: 0000
kernel: CPU: 0
kernel: EIP: 0010:[<c012e33f>]
kernel: EFLAGS: 00010207
kernel: eax: c0228260 ebx: ffffffe8 ecx: 00733ea3 edx: 00000c07
kernel: esi: c2ba1f88 edi: c1e12005 ebp: 00000000 esp: c2ba1f44
kernel: ds: 0018 es: 0018 ss: 0018
kernel: Process find (pid: 294, process nr: 6, stackpage=c2ba1000)
kernel: Stack: c1e12005 00000000 c0228260 c1e12000 00733ea3 00000005 c0129a40 c008d160
kernel: c2ba1f88 00000000 c0129c86 c008d160 c2ba1f88 c1e12000 c1e12000 00000001
kernel: bffff988 c1e12000 00000005 00733ea3 c0129d94 c1e12000 c008d160 00000000
kernel: Call Trace: [<c0129a40>] [<c0129c86>] [<c0129d94>] [<c0127dd6>] [<c0107974>]
kernel: Code: 8b 6d 00 39 4b 48 75 59 8b 4c 24 24 39 4b 0c 75 50 8b 41 50

And this is the output of ksymoops:

Using `/boot/System.map' to map addresses to symbols.

>>EIP: c014a9e1 <vfat_lookup+a5/c4>
Trace: c0129ac6 <real_lookup+4a/70>
Trace: c0129c9a <lookup_dentry+12e/200>
Trace: c0129d94 <__namei+28/58>
Trace: c0127dd6 <sys_newlstat+e/60>
Trace: c0107974 <system_call+34/40>
Code: c014a9e1 <vfat_lookup+a5/c4>
Code: c014a9e1 <vfat_lookup+a5/c4> 8b 40 08 movl 0x8(%eax),%eax
Code: c014a9e4 <vfat_lookup+a8/c4> 8b 40 44 movl 0x44(%eax),%eax
Code: c014a9e7 <vfat_lookup+ab/c4> 89 42 4c movl %eax,0x4c(%edx)
Code: c014a9ea <vfat_lookup+ae/c4> 56 pushl %esi
Code: c014a9eb <vfat_lookup+af/c4> 52 pushl %edx
Code: c014a9ec <vfat_lookup+b0/c4> e8 97 3a fe ff call fffe3aa7 <_EIP+0xfffe3aa7>
Code: c014a9f1 <vfat_lookup+b5/c4> 31 c0 xorl %eax,%eax
Code: c014a9f3 <vfat_lookup+b7/c4> 83 c4 00 addl $0x0,%esp
Code: c014a9f6 <vfat_lookup+ba/c4> 90 nop
Code: c014a9f7 <vfat_lookup+bb/c4> 90 nop
Code: c014a9f8 <vfat_lookup+bc/c4> 90 nop

>>EIP: c012e33f <d_lookup+5b/cc>
Trace: c0129a40 <cached_lookup+10/4c>
Trace: c0129c86 <lookup_dentry+11a/200>
Trace: c0129d94 <__namei+28/58>
Trace: c0127dd6 <sys_newlstat+e/60>
Trace: c0107974 <system_call+34/40>
Code: c012e33f <d_lookup+5b/cc>
Code: c012e33f <d_lookup+5b/cc> 8b 6d 00 movl 0x0(%ebp),%ebp
Code: c012e342 <d_lookup+5e/cc> 39 4b 48 cmpl %ecx,0x48(%ebx)
Code: c012e345 <d_lookup+61/cc> 75 59 jne c012e3a0 <d_lookup+bc/cc>
Code: c012e347 <d_lookup+63/cc> 8b 4c 24 24 movl 0x24(%esp,1),%ecx
Code: c012e34b <d_lookup+67/cc> 39 4b 0c cmpl %ecx,0xc(%ebx)
Code: c012e34e <d_lookup+6a/cc> 75 50 jne c012e3a0 <d_lookup+bc/cc>
Code: c012e350 <d_lookup+6c/cc> 8b 41 50 movl 0x50(%ecx),%eax

Good luck.

Yours,

John Hayward-Warburton
linux@billabong.demon.co.uk

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/