Re: [OOPS] at smbfs umount in linux-2.4.10-pre5

From: Urban Widmark (urban@teststation.com)
Date: Fri Sep 14 2001 - 15:20:49 EST


On Mon, 10 Sep 2001, Xuan Baldauf wrote:

> 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/



This archive was generated by hypermail 2b29 : Sat Sep 15 2001 - 21:00:49 EST