patch to fix symlink-related GPFs on Linux
Aaron M. Ucko
amu at MIT.EDU
Sat Jul 25 22:28:17 CEST 1998
Magnus Ahltorp <map at stacken.kth.se> writes:
> > I loaded the module with xfsdeb set to 0xFFFFFFFF, but I didn't see
> > any unusual messages when it hung.
>
> What are the last messages that you see? What happens if you do a
> Shift-Scroll lock and compare the IP with a loadmap or /proc/ksyms?
Oh, right, I forgot about the debugging keystrokes. Here goes:
(Note: I had to write the messages down and type them back in, so
there may be minor formatting typos, but I'm pretty sure the numbers
are all right.)
kernel: xfs_lookup: name: apr1rfcs.gz (11) xfs_cache_lookup_dir: 03d35998
kernel: xfs_cache_lookup: empty entry
kernel: xfs_message_rpc opcode = 4
kernel: xfs_devread: m = 0481e904 m->prev = 0253a018 m->next = 0253a018
kernel: xfs_devread: first = 0253a018 first->prev = 0481e904 first->next = 0481e904
kernel: message->size = 292
arlad: Rec message: opcode = 4 (getnode), size = 292
arlad: Multi-send: opcode = 5 (installnode), size = 394
arlad: multi-sending wakeup: seq = 37, error = 0
kernel: xfs_devwrite
kernel: xfs_message_receive opcode = 5
kernel: xfs_message_installnode
kernel: xfs_node_find
kernel: new_xfs_node 0.537113399.480.30967
kernel: xfs_node_find
kernel: xfs_iget sb: 001f3fd4 node: 02e40134 newnode: 00f5f798
Right-Alt-ScrollLock always gave me one of these three dumps:
EIP: 0010:[<00124728>] EFLAGS: 00000206
EAX: 00000004 EBX: 03e34600 ECX: 001d493c EDX: 009cb414
ESI: 001e65bc EDI: 00000000 EBP: 001f3fd4 DS: 0018 ES: 0018 FS: 002b GS: 002b
EIP: 0010:[<0012473a>] EFLAGS: 00000216
EAX: 00000004 EBX: 03e34600 ECX: 001d493c EDX: 009cb414
ESI: 001e65bc EDI: 00000000 EBP: 001f3fd4 DS: 0018 ES: 0018 FS: 002b GS: 002b
EIP: 0010:[<0012473d>] EFLAGS: 00000216
EAX: 00000004 EBX: 03e34600 ECX: 001d493c EDX: 009cb414
ESI: 001e65bc EDI: 00000000 EBP: 001f3fd4 DS: 0018 ES: 0018 FS: 002b GS: 002b
The kernel appears to be spinning in this loop in __iget:
for (inode = h->inode; inode ; inode = inode->i_hash_next)
if (inode->i_dev == sb->s_dev && inode->i_ino == nr)
goto found_it;
124728: 66 39 03 cmpw %ax,(%ebx)
12472b: 75 0d jne 12473a <__iget+0x4e>
12472d: 8b 4c 24 1c movl 0x1c(%esp,1),%ecx
124731: 39 4b 04 cmpl %ecx,0x4(%ebx)
124734: 0f 84 fa 00 00 je 124834 <__iget+0x148>
124739: 00
12473a: 8b 5b 6c movl 0x6c(%ebx),%ebx
12473d: 85 db testl %ebx,%ebx
12473f: 75 e7 jne 124728 <__iget+0x3c>
--
Aaron M. Ucko, KB1CJC <amu at mit.edu> (finger amu at monk.mit.edu)
More information about the Arla-drinkers
mailing list