From 4c56604915c6ac01e6d6fcdd95050d440e473c49 Mon Sep 17 00:00:00 2001 From: Matheus Date: Wed, 15 Apr 2026 16:51:17 -0300 Subject: [PATCH] pipefs: fix binding and poll --- kernel-src/fs/pipefs.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel-src/fs/pipefs.c b/kernel-src/fs/pipefs.c index e8120ebd..64b9f6fe 100644 --- a/kernel-src/fs/pipefs.c +++ b/kernel-src/fs/pipefs.c @@ -117,7 +117,7 @@ static int internalpoll(vnode_t *node, polldata_t *data, int events) { events |= POLLHUP; if (pipenode->writers == 0 && pipenode->open) revents |= POLLHUP; - else if (RINGBUFFER_DATACOUNT(&pipenode->data) > 0) + if (RINGBUFFER_DATACOUNT(&pipenode->data) > 0) revents |= POLLIN; } @@ -481,6 +481,8 @@ int pipefs_getbinding(vnode_t *node, vnode_t **pipep) { return error; } -void pipefs_leavebinding(vnode_t *pipenode) { +void pipefs_leavebinding(vnode_t *vnode) { + vnode_t *pipenode = vnode->fifobinding; + vnode->fifobinding = NULL; VOP_RELEASE(pipenode); }