On Mon, Jun 07, 2021 at 11:32:46AM +0200, Aurélien Aptel wrote: > If the user session is deleted trying again will always fail. Are you > sure this is the reason you get this issue? It is. We can explicitly delete the user sesssion on windows prior to one of these calls, which will be replyed with STATUS_USER_SESSION_DELETED. 470 0.0 client → server SMB2 198 Create Request File: 471 0.n server → client SMB2 143 Create Response, Error: STATUS_USER_SESSION_DELETED Which is converted to EAGAIN with the expectation that someone will handle it down the stack while the user session is restablished. This doesn't happen currently, and EAGAIN is leaking to userspace. For getdents, EAGAIN is unexpected, and most applications don't bother handling it, including coreutils (ls and stat were used to test this patch). And for several syscalls that rely on lookup, returning EAGAIN is unexpected, so we shouldn't leak it. In our testing, sending the call again handles the problem with no userspace disrruption. Best, Thiago