CFR: fifo_open()/fifo_close() patch

Terry Lambert tlambert2 at mindspring.com
Fri May 16 21:53:17 PDT 2003



Don Lewis wrote:
> 
> There are a few problems in the fifo_open() and fifo_close()
> implementations.
> 
>         fifo_open() calls VOP_CLOSE() with the vnode locked, whereas
>         VOP_CLOSE() should be called with the vnode unlocked.

This is actually pretty bogus.  All VOP's, except those that
return (locked) vnodes, or dispose (locked) vnodes that are
managed by the FS itself, should have locked vnodes.  There's
a nasty race condition that occurs because of the VOP_CLOSE()
being called without the vnode locked.

-- Terry


More information about the freebsd-current mailing list