Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Oct 2007 18:29:25 -0700 (PDT)
From:      Jeff Roberson <jroberson@chesapeake.net>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/fs/devfs devfs_vnops.c src/sys/fs/fifofs  fifo_vnops.c src/sys/kern uipc_usrreq.c vfs_vnops.c src/sys/vm  vnode_pager.c
Message-ID:  <20071004182759.U912@10.0.0.1>
In-Reply-To: <200710041219.13202.jhb@freebsd.org>
References:  <200710032106.l93L65bv095725@repoman.freebsd.org> <20071003164642.B615@10.0.0.1> <200710041219.13202.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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
>



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