I don't object performing the actual login procedure in user space,
this is where it belongs. However, as a result of the login, I assume
smbmount obtains a session key or something that gets passed to the kernel
(I'll have yet to study the details of SMB).
So I suggest the same procedure: smbmount is a plain executable,
performs the login, then passes the results to the kernel using mount(2).
The kernel then checks whether the file system supports user mounts,
and proceeds mounting it.
If you absolutely want to introduce a new system call, don't forget
to fix the problems of the current one. For example, user space should
provide a size for the data argument.
Regards,
Martin