Keith, you got bitten by the bad revision of the code I checked in on
Friday, an icache_prune running in parallel with an xfs_iget would
have a chance of crashing the system. A fix went in later on Sunday.
Steve
> XFS 2.4.4 CVS as of Sun May 27 02:00 UTC. SMP, compiled with gcc
> version 2.96 20000731 (Red Hat Linux 7.1 2.96-81). Redhat claim that
> this version of gcc is OK to compile the kernel, there is no kgcc in
> Redhat 7.1. Running rsync from a second machine to this machine.
>
> Reboot came up fine (and fast :). Rerunning rsync worked the second
> time but a later rsync failed at the same place. Just before the
> failure it said
>
> xfs_iget_core: ambiguous vns: vp/0xc2d9e508, invp/0xc73dbd08
>
> [0]kdb> rd
> eax = 0x00000000 ebx = 0xc73dbd08 ecx = 0xc7a6c800 edx = 0xc2d9d9c4
> esi = 0xc73dbd08 edi = 0x00000084 esp = 0xc27f3d24 eip = 0xc88a5b0e
> ebp = 0xc78db334 xss = 0x00000018 xcs = 0x00000010 eflags = 0x00010286
> xds = 0xc2d90018 xes = 0x00000018 origeax = 0xffffffff ®s = 0xc27f3cf0
> [0]kdb> bt
> EBP EIP Function(args)
> 0xc78db334 0xc88a5b0e [xfs]vn_revalidate+0x1e (0xc73dbd08, 0x84, 0x0, 0xc12f7
> 0c0, 0xa007f5)
> xfs .text 0xc8849060 0xc88a5af0 0xc88a5c00
> 0xc887d4f1 [xfs]xfs_iget_core+0x611 (0xc73dbd08, 0xc7a6c800, 0x0,
> 0xa007f5, 0x0)
> xfs .text 0xc8849060 0xc887cee0 0xc887d510
> 0xc887d615 [xfs]xfs_iget+0x105 (0xc7a6c800, 0x0, 0xa007f5, 0x0, 0x
> 0)
> xfs .text 0xc8849060 0xc887d510 0xc887d650
> 0xc88930f7 [xfs]xfs_dir_lookup_int+0x127 (0x0, 0xc2d9dbb0, 0x5, 0x
> c3faed20, 0xc27f3eec)
> xfs .text 0xc8849060 0xc8892fd0 0xc8893290
> 0xc8897a17 [xfs]xfs_lookup+0x97 (0xc2d9dbb0, 0xc3faed20, 0xc27f3ed
> 8, 0xc27f3eec, 0x0)
> xfs .text 0xc8849060 0xc8897980 0xc8897a90
> 0xc88a05f8 [xfs]linvfs_lookup+0x68 (0xc2d9e5e0, 0xc3faecc0)
> xfs .text 0xc8849060 0xc88a0590 0xc88a0650
> 0xc013fc23 real_lookup+0x73 (0xc3657960, 0xc27f3f54, 0x0, 0x1, 0x8
> )
> kernel .text 0xc0100000 0xc013fbb0 0xc013fcc0
> 0xc01404f4 path_walk+0x6b4 (0xc6749000, 0xc27f3f9c)
> kernel .text 0xc0100000 0xc013fe40 0xc0140790
> 0xc0140c7a __user_walk+0x3a (0xbfff9878, 0x8, 0xc27f3f9c, 0xc36579
> 60, 0xc13f0860)
> kernel .text 0xc0100000 0xc0140c40 0xc0140ca0
> 0xc013d623 sys_lstat64+0x13 (0xbfff9878, 0xbfffa888, 0x4014e9e4, 0
> xbfffa888, 0xbfff9878)
> kernel .text 0xc0100000 0xc013d610 0xc013d680
> 0xc0106e2b system_call+0x33
> kernel .text 0xc0100000 0xc0106df8 0xc0106e30
> [0]kdb> mds 0xc73dbd08
> 0xc73dbd08 00010000 .... __u32 v_flag
> 0xc73dbd0c 00000002 .... enum vtype v_type
> 0xc73dbd10 c7f42860 `(tG struct vfs *v_vfsp
> 0xc73dbd14 00026052 R`.. vnumber_t v_number
> 0xc73dbd18 00000000 ....
> 0xc73dbd1c 00000000 .... bhv_head_t v_bh
> 0xc73dbd20 00000001 .... spinlock_t v_lock
> 0xc73dbd24 c73dbc00 .<=G struct inode *v_inode
>
> inode 0xc73dbc00
> struct inode at 0xc73dbc00
> i_ino = 10487797 i_count = 1 i_dev = 0x814 i_size 0
> i_mode = 0x0 i_nlink = 1 i_rdev = 0x0
> i_hash.nxt = 0xc037a5e0 i_hash.prv = 0xc12f70c0
> i_list.nxt = 0xc2d9e5e8 i_list.prv = 0xc02c9288
> i_dentry.nxt = 0xc73dbc10 i_dentry.prv = 0xc73dbc10
> i_dirty_buffers.nxt = 0xc73dbc18 i_dirty_buffers.prv = 0xc73dbc18
> i_sb = 0xc78de800 i_op = 0xc03231e0 i_data = 0xc73dbca4 nrpages = 0
> i_mapping = 0xc73dbca4
> i_flags 0x0 i_state 0x48 [I_LOCK I_NEW] fs specific info @ 0xc73dbd08
>
> [0]kdb> id vn_revalidate
> 0xc88a5af0 vn_revalidate push %edi
> 0xc88a5af1 vn_revalidate+0x1 push %esi
> 0xc88a5af2 vn_revalidate+0x2 push %ebx
> 0xc88a5af3 vn_revalidate+0x3 sub $0x70,%esp
> 0xc88a5af6 vn_revalidate+0x6 mov 0x80(%esp,1),%ebx struct vnode *v
> p
> 0xc88a5afd vn_revalidate+0xd movl $0x14003fff,(%esp,1)
> 0xc88a5b04 vn_revalidate+0x14 mov 0x84(%esp,1),%edi
> 0xc88a5b0b vn_revalidate+0x1b mov 0x14(%ebx),%eax vp->v_bh == NUL
> L
> 0xc88a5b0e vn_revalidate+0x1e mov 0x8(%eax),%edx vp->v_bh->bd_op
> s, oops
> 0xc88a5b11 vn_revalidate+0x21 push $0x0
> 0xc88a5b13 vn_revalidate+0x23 mov %edi,%eax
> 0xc88a5b15 vn_revalidate+0x25 and $0x80,%eax
> 0xc88a5b1a vn_revalidate+0x2a push %eax
> 0xc88a5b1b vn_revalidate+0x2b lea 0x8(%esp,1),%eax
> 0xc88a5b1f vn_revalidate+0x2f push %eax
> 0xc88a5b20 vn_revalidate+0x30 mov 0x14(%ebx),%esi
>
> Why is vp->v_bh NULL?
>
> [0]kdb> mds c7f42860 (struct vfs)
> 0xc7f42860 00001020 ...
> 0xc7f42864 00000814 ....
> 0xc7f42868 00000001 ....
> 0xc7f4286c c7f4286c l(tG
> 0xc7f42870 c7f4286c l(tG
> 0xc7f42874 00000001 ....
> 0xc7f42878 00001000 ....
> 0xc7f4287c 00000000 ....
> 0xc7f42880 8b51c640 @FQ.
> 0xc7f42884 266bb554 T5k&
> 0xc7f42888 c7a6ca18 .J&G
> 0xc7f4288c c7a6c800 .H&G
> 0xc7f42890 c78de800 .h.G
> 0xc7f42894 00000000 ....
> 0xc7f42898 00000000 ....
> 0xc7f4289c 00000000 ....
> 0xc7f428a0 00000002 ....
> 0xc7f428a4 00048000 ....
> 0xc7f428a8 6f616b30 0kao
> 0xc7f428ac 00000073 s...
> 0xc7f428b0 40000c83 ...@
> 0xc7f428b4 736f616b kaos
> 0xc7f428b8 736e692d -ins
> 0xc7f428bc 6c6c6174 tall
> 0xc7f428c0 8a000000 ....
> 0xc7f428c4 00000000 ....
> 0xc7f428c8 00000001 ....
> 0xc7f428cc 00000001 ....
> 0xc7f428d0 00000000 ....
> 0xc7f428d4 00000000 ....
> 0xc7f428d8 00000000 ....
> 0xc7f428dc 00000000 ....
> 0xc7f428e0 c7e93d20 =iG
> 0xc7f428e4 c7e93ea0 >iG
> 0xc7f428e8 00000000 ....
> 0xc7f428ec c78de000 .`.G
> 0xc7f428f0 00000008 ....
> 0xc7f428f4 ffffffff
> 0xc7f428f8 00000001 ....
> 0xc7f428fc 00000002 ....
|