Hi James, On Fri, Feb 13, 2009 at 11:02:15AM -0600, james wahlig wrote: > Your condensed explanation had me a little confused, how does vn_rele()
Sorry for that, I apologize. > access the mi? However, I realize that is the async_inactive that uses > the vnode to get the mi. Yes. That's true it is in nfs_async_inactive(): 1881 void 1882 nfs_async_inactive(vnode_t *vp, cred_t *cr, 1883 void (*inactive)(vnode_t *, cred_t *, caller_context_t *)) 1884 { 1885 mntinfo_t *mi; 1886 struct nfs_async_reqs *args; 1887 1888 mi = VTOMI(vp); 1889 [... snip ...] 1910 mutex_enter(&mi->mi_async_lock); <------------------- HERE 1911 if (mi->mi_manager_thread == NULL) { 1912 rnode_t *rp = VTOR(vp); 1913 To complete the information, the panic stack is: > ::stack vpanic(10bc768, 10bc788, 60010be14f0, deadbeefdeadbee8, 30007f9d840, 0) nfs_async_inactive+0x44(60010be14f0, 60010b08be0, 7b796170, 5, 60010be1380, 60010be3970) nfs3_mount+0x9c8(0, 60010be1380, 60010315430, 6001145f300, 2a1006779d8, 0) domount+0xac8(60010be3970, 2a1006779d8, 60011454600, 802c, 104, 0) mount+0x108(600102924b8, 2a100677ad8, 31090, 2ec9c, 104, ffbffe94) syscall_ap+0x58(2a0, ffbffeb0, 11516d4, 60010292400, 15, 4c) syscall_trap32+0xcc(ffbffe94, ffbffeb0, 104, 2ec9c, 31090, 4c) > > The changes look good. Thank you! -- Marcel Telka Solaris RPE