Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 09 Apr 1997 14:35:09 -0700
From:      David Greenman <dg@root.com>
To:        Terry Lambert <terry@lambert.org>
Cc:        ponds!rivers@dg-rtp.dg.com (Thomas David Rivers), hackers@freebsd.org
Subject:   Re: Some insight on "dup alloc" problems..... 
Message-ID:  <199704092135.OAA22510@root.com>
In-Reply-To: Your message of "Wed, 09 Apr 1997 10:09:09 PDT." <199704091709.KAA07150@phaeton.artisoft.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
...
>| 		vp = (struct vnode *) malloc((u_long) sizeof *vp,
>| 		    M_VNODE, M_WAITOK);
>                *************************************************

   There are mutex locks in the callers of getnewvnode (specifically UFS)
which force the calls to it to be single-threaded, preventing the vnode
allocation race condition you are refering to. I know because I added them
over a year ago:

revision 1.24
date: 1995/07/21 03:52:40;  author: davidg;  state: Exp;  lines: +34 -4
Implement a lock in ffs_vget to prevent a race condition where two processes
try allocate the same inode/vnode, causing a duplicate.

-DG

David Greenman
Core-team/Principal Architect, The FreeBSD Project



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199704092135.OAA22510>