diff options
Diffstat (limited to 'sys/fs/fifofs/fifo_vnops.c')
-rw-r--r-- | sys/fs/fifofs/fifo_vnops.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/fs/fifofs/fifo_vnops.c b/sys/fs/fifofs/fifo_vnops.c index 53538ef..2b53806 100644 --- a/sys/fs/fifofs/fifo_vnops.c +++ b/sys/fs/fifofs/fifo_vnops.c @@ -244,8 +244,13 @@ fifo_open(ap) } else { while (fip->fi_readers == 0) { VOP_UNLOCK(vp, 0, td); + /* + * XXX: Some race I havn't located is solved + * by timing out after a sec. Race seen when + * sendmail hangs here during boot /phk + */ error = tsleep((caddr_t)&fip->fi_writers, - PCATCH | PSOCK, "fifoow", 0); + PCATCH | PSOCK, "fifoow", hz); vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); if (error) goto bad; |