On 2022/09/04 8:39, Dominique Martinet wrote: > Is there any reason you spent time working on v2, or is that just > theorical for not messing with userland fd ? Just theoretical for not messing with userland fd, for programs generated by fuzzers might use fds passed to the mount() syscall. I imagined that syzbot again reports this problem when it started playing with fcntl(). For robustness, not messing with userland fd is the better. ;-) > > unless there's any reason I'll try to find time to test v1 and queue it > for 6.1 OK. > We seem to check for EAGAIN where kernel_read/write end up being called > and there's a poll for scheduling so it -should- work, but I assume this > hasn't been tested much and might take a bit of time to test. Right. Since the I/O in kernel side is poll based multiplexing, forcing non-blocking I/O -should- work. (But I can't test e.g. changes in CPU time usage because I don't have environment to test. I assume that poll based multiplexing saves us from doing busy looping.) We are currently checking for ERESTARTSYS and EAGAIN. The former is for non-socket fds which do not have O_NONBLOCK flag, and the latter is for socket fds which have O_NONBLOCK flag. If we enforce O_NONBLOCK flag, the former will become redundant. I think we can remove the former check after you tested that setting O_NONBLOCK flag on non-socket fds does not break.