Subject: amd/nfs/vgone interaction.
To: None <tech-kern@netbsd.org>
From: Christos Zoulas <christos@zoulas.com>
List: tech-kern
Date: 02/11/2003 20:43:51
Nfs_reclaim looks into vp->v_mount to do stuff for leases, but
this pointer is bad. The reason is, that umount does not clean up
vnodes in the vnode_free_list.
So when you run a find on ffs, and amd unmounts an nfs mount...
eventually getnewvnode() will grab a free vnode from the free list,
then that h appens to be on the nfs that was unmounted, vgonel calls
VOP_RECLAIM -> nfs_reclaim -> boom. This is essentially PR/17107.
The problem is that someone needs to deal with the vnodes on the free
list that belong to the filesystem that is being unmounted and vclean()
them, before the fs is gone.
The other fs's are not being affected because they don't touch v_mount.
Any better ideas on how to fix this?
christos