DragonFly bugs List (threaded) for 2005-06
Rumko's SMB panic
I have been looking at the smbfs panic you got on and off. It seems
the reason why it is panic'ing is because the thread that does the
vnode recycling scan is not associated with a process context.
The vnlru kernel daemon used to be a process before and now it is a
pure thread. Not many (only two) file systems require cred info in
the VOP_INACTIVE path; smbfs (CIFS) and nwfs (Netware).
Since there is in and out use of process credentials in many of the
file systems, FreeBSD passes credentials into the VOPs, which we do
not do. Another way around this issue is to associate proc0, i.e.
the swapper process to all the now pure kernel threads.
Another way, is to write a function should be introduced called
cred_retrieve(9) which will make use of thread's ucred, if it has one
or make use of swapper's ucred (no holes barred access).
I think providing credential information as part of the VOPs is the
most logical way of doing it, since we would solve such cases of
"ucred requirement" in other parts of the VNOPS use as well.