> this oops just happened now when trying to unmount an smbfs
> mount entry
...
> >>EIP; c013033e <fput+6/c0> <=====
> Trace; c529a140 <[smbfs]smb_sops+0/40>
> Trace; c52970ea <[smbfs]smb_put_super+26/a8>
fput(server->sock_file), where sock_file is NULL ... ?
> Sep 10 13:09:52 router kernel: smb_dont_catch_keepalive: did
> not get valid server!
This complaint is about 'server' or 'server->sock_file' being NULL,
probably the sock_file.
I think what happens is that at umount it enters this code:
if (server->sock_file) {
smb_proc_disconnect(server);
smb_dont_catch_keepalive(server);
fput(server->sock_file);
}
The problem here is that smb_proc_disconnect may run into trouble if the
connection is gone. And by the messages smbfs is having connection
problems. That will cause smbfs to close the socket and request a new from
smbmount.
A fix would be to simply do the disconnect first, and then test sock_file
again. Or simply make smb_proc_disconnect not do anything if the
connection is bad.
I wonder why this doesn't always crash when the connection is bad.
Can you repeat the oops?
> Trying to remount the same smb share at the same mount point
> fails. Strace shows that the mount process is stuck in the
> "mount" call. Also trying to mount the same samba share at
> another mount point hangs.
Once it has crashed here, it holds locks preventing anyone from accessing
it.
/Urban
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/