summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2005-09-12 10:06:38 +0000
committerrwatson <rwatson@FreeBSD.org>2005-09-12 10:06:38 +0000
commitc9f007b15949f7dff145daeb4022db557dba9b35 (patch)
tree7e1658ca9e1d9284ed6c2cd7cec3c4e7d6f1c496 /sys/fs
parenta079789c36956ae26dca4da7bf77ded89eb7f6e1 (diff)
downloadFreeBSD-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
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/fifofs/fifo_vnops.c2
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;
}
OpenPOWER on IntegriCloud