diff options
author | rwatson <rwatson@FreeBSD.org> | 2005-09-12 10:06:38 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2005-09-12 10:06:38 +0000 |
commit | c9f007b15949f7dff145daeb4022db557dba9b35 (patch) | |
tree | 7e1658ca9e1d9284ed6c2cd7cec3c4e7d6f1c496 | |
parent | a079789c36956ae26dca4da7bf77ded89eb7f6e1 (diff) | |
download | FreeBSD-src-c9f007b15949f7dff145daeb4022db557dba9b35.zip FreeBSD-src-c9f007b15949f7dff145daeb4022db557dba9b35.tar.gz |
Add an assertion that fifo_open() doesn't race against other threads
while sleeping to allocate fifo state: due to using the vnode lock to
serialize access to a fifo during open, it shouldn't happen (tm).
MFC after: 3 days
-rw-r--r-- | sys/fs/fifofs/fifo_vnops.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/fs/fifofs/fifo_vnops.c b/sys/fs/fifofs/fifo_vnops.c index f593676..f3652f8 100644 --- a/sys/fs/fifofs/fifo_vnops.c +++ b/sys/fs/fifofs/fifo_vnops.c @@ -196,6 +196,8 @@ fail1: SOCKBUF_LOCK(&rso->so_rcv); rso->so_rcv.sb_state |= SBS_CANTRCVMORE; SOCKBUF_UNLOCK(&rso->so_rcv); + KASSERT(vp->v_fifoinfo == NULL, + ("fifo_open: v_fifoinfo race")); vp->v_fifoinfo = fip; } |