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
John Baldwin
jhb at freebsd.org
Thu Oct 4 14:47:11 PDT 2007
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.
--
John Baldwin
More information about the cvs-src
mailing list