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