[Samba] If we use vfork, can the smbd and nmbd work rightly?

shrek wu wsmd78 at gmail.com
Thu Jan 8 06:51:55 GMT 2009


Hi All,
I has been trying to port the Samba package to uClinux. But our uClinux
toolchain doesn't support the fork() call.
I must replace the fork with vfork.If we use vfork, the smbd and nmbd can
not work rightly.
both samba-3.0.32 and samba-3.0.2a have the question.

In samba/source/smbd/server.c, the function open_sockets_smbd(), creates a
child process and a parent process.
Both these functions need to do different tasks in smbd at about the same
time.
The call to vfork() creates a child process and blocks the parent process,
but vfork() differs from fork() in that the parent is suspended until the
child makes a call to execve(2) or _exit(2).
So we replaced the fork with vfork in samba, smbd and nmbd can not work
rightly.

Had somebody let the smbd and nmbd can work using vfork()?
What I can do let the smbd and nmbd can work using vfork()?

Thanks
shrek


More information about the samba mailing list