diff --git a/sys/vfs/fuse/fuse_ipc.c b/sys/vfs/fuse/fuse_ipc.c --- a/sys/vfs/fuse/fuse_ipc.c +++ b/sys/vfs/fuse/fuse_ipc.c @@ -167,11 +167,11 @@ } if (fuse_ipc_test_replied(fip)) - return 0; + goto done; again: tsleep_interlock(fip, 0); if (fuse_ipc_test_replied(fip)) - return 0; + goto done; error = tsleep(fip, PINTERLOCKED, "ftxp", 5 * hz); if (!error) KKASSERT(fuse_ipc_test_replied(fip)); @@ -195,6 +195,7 @@ return error; } +done: if (fuse_test_dead(fip->fmp)) { KKASSERT(fuse_ipc_test_replied(fip)); return ENOTCONN;