Hmm. The way the revamped console code works is this: cn_devopen() calls vn_open() to open the device. If this is not a VCHR device, then it is closed. Otherwise, the vnode is stashed in cnd->cnd_vp.
When the device is closed though cnclose(), it walks through a list of console devices, and if cnd_vp != NULL, calls vn_close() for that vnode, and then NULLs out cnd_vp. (drops the reference.) My understanding is that vn_open/vn_close will track the count of outstanding references to the vnode, so this should be safe to do. -- Jonathan On Wed, Oct 24, 2001 at 11:38:12AM -0700, Matthew Dillon wrote: > > :... > :Sttopped at Debugger+0x44: pushl %ebx > :db> trace > :Debugger() > :panic() > :vrele() > :vn_close() > :cnclose() > :spec_close() > :spec_vnoperate() > :vclean() > :vgonel() > :vgone() > :vop_revoke() > :devfs_revoke() > :exit1() > :... > > In looking at a diff in the last few days, a huge number of changes have been > made kern/tty_cons.c by jlemon. Since the area of the panic is around the same > block of code there's a good chance that these changes are the cause, though I > have not tested this. If so, Jonathan can locate the bug much more quickly then > I can. > > -Matt To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-current" in the body of the message