pipefs: fix binding and poll

This commit is contained in:
Matheus
2026-04-15 16:51:17 -03:00
parent 06bd6e2352
commit 4c56604915
+4 -2
View File
@@ -117,7 +117,7 @@ static int internalpoll(vnode_t *node, polldata_t *data, int events) {
events |= POLLHUP; events |= POLLHUP;
if (pipenode->writers == 0 && pipenode->open) if (pipenode->writers == 0 && pipenode->open)
revents |= POLLHUP; revents |= POLLHUP;
else if (RINGBUFFER_DATACOUNT(&pipenode->data) > 0) if (RINGBUFFER_DATACOUNT(&pipenode->data) > 0)
revents |= POLLIN; revents |= POLLIN;
} }
@@ -481,6 +481,8 @@ int pipefs_getbinding(vnode_t *node, vnode_t **pipep) {
return error; 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); VOP_RELEASE(pipenode);
} }