mirror of
https://github.com/drasko/codezero.git
synced 2026-01-12 10:53:16 +01:00
fs0 used to receive open() requests and notify pager about them via a syscall ipc. This caused deadlocks because normally request flow is mm0 -> fs0 on all other calls. The solution was to have mm0 ask and validate file descriptors from fs0 on the first request instance that involved that file descriptor. By this method we delay the validation of the fd until its first use, and avoid deadlock. It also fits well with the lazy request handling design philosophy.