Date: Sat, 05 Apr 1997 18:29:37 +0200 From: Tor Egge <Tor.Egge@idi.ntnu.no> To: terry@lambert.org Cc: dfr@nlsystems.com, dg@root.com, ponds!rivers@dg-rtp.dg.com, freebsd-hackers@freebsd.org Subject: Re: kern/3184: vnodes are used after they are freed. (dup alloc?) Message-ID: <199704051629.SAA00567@pat.idt.unit.no> In-Reply-To: Your message of "Fri, 4 Apr 1997 21:21:42 -0700 (MST)" References: <199704050421.VAA20745@phaeton.artisoft.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> > Proper locking on NFS will help against the crash I experienced, but > > if the NFS server goes down at the wrong moment, a call to getnewvnode > > may hang until the NFS server is back again. > > This will always be the case, right? > > Or do you mean the case where an attempt to vclean() a vnode is against > an NFS vnode with the server down? When the first vnode on the so-called free list is a NFS vnode, where VOP_INACTIVE is blocked (due to nfs_remove blocking when the NFS server is down), that vnode cannot be reused for a long time (until the nfs server is up again). When getnewvnode picks that vnode it waits for the lock to drain (in vclean). if the routine that called getnewvnode is ffs_vget, the ffs_inode_hash_lock is set while getnewvnode blocks. This has the side effect that any further calls to ffs_vget will block. This might block any creation of new files on local ufs file systems while the NFS server is down. - Tor Egge
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199704051629.SAA00567>