git: kernel - Fix lost wakeup in fifo_open()
Antonio Huete Jimenez
tuxillo at crater.dragonflybsd.org
Tue Sep 15 11:39:58 PDT 2026
commit b5c7a41dd22a8ee2a63f03694b6075ed1717a9e5
Author: Antonio Huete Jimenez <tuxillo at quantumachine.net>
Date: Tue Sep 15 20:39:17 2026 +0200
kernel - Fix lost wakeup in fifo_open()
* fifo_open() tests fi_readers, drops the fifo and vnode locks, then
tsleeps. A peer opening in that window bumps the counter and issues
its wakeup before the sleeper is queued, so open(2) blocks forever
with a peer already attached. Both paths are affected.
* Queue with tsleep_interlock() before releasing the locks and sleep
with PINTERLOCKED.
Reviewed-by: @dillon
Summary of changes:
sys/vfs/fifofs/fifo_vnops.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/b5c7a41dd22a8ee2a63f03694b6075ed1717a9e5
--
DragonFly BSD source repository
More information about the Commits
mailing list