On Thu, 4 Oct 2007, John Baldwin wrote:
On Wednesday 03 October 2007 07:48:00 pm Jeff Roberson wrote:
On Wed, 3 Oct 2007, John Baldwin wrote:
jhb 2007-10-03 21:06:05 UTC
FreeBSD src repository
Modified files: (Branch: RELENG_6)
sys/fs/devfs devfs_vnops.c
sys/fs/fifofs fifo_vnops.c
sys/kern uipc_usrreq.c vfs_vnops.c
sys/vm vnode_pager.c
Log:
MFC: Always use an exclusive lock on the leaf vnode during an open() when
shared lookups are enabled. This closes a few races including a race
where
concurrent opens of a fifo could result in different v_fifoinfo
structures
in different threads.
Long term we should really look for a better solution to this problem.
There are a number of was to improve snapshots in ffs by fixing shared
locking.
I don't disagree. The fifo case can be fixed easily enough in the fifo code
by using fifo_mtx to protect v_fifoinfo perhaps (or doing an upgrade on the
vnode lock?), but for the MFC I didn't want to have to fix each of the races
with open(2). Probably better to fix it more properly in HEAD first.
Definitely someting for head. Were there any others that you ran into
besides v_fifoinfo? We should audit this more closely anyhow. I have
been reluctant to push too much shared locking into VFS because it's not
been so carefully studied.
Jeff
--
John Baldwin
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"