The implementation of fork() results in tree disconnects being sent to the SMB server when closing the child processes's server references. When the parent process then attempts another access to the same server it receives "ERRSRV - ERRinvnid (The tree ID (TID) specified in a command was invalid."
Created attachment 746 [details] test case for bug in smbw_fork() This is an example C program. Compile and run as per comments at top. Second stat() operation will return EINVAL (Invalid argument), not ENOENT (No such file or directory) that one expects.
Created attachment 747 [details] proposed bug fix to smbwrapper/smbw.c This is a proposed patch, to prevent smbw_fork() from actually sending a tree disconnect to the server.
smbwrapper is not being maintained currently. Marking as fix later (if anyone wants to come back to this and run all the necessary regression tests).