Comment 85 for bug 211631

Revision history for this message
Bart Samwel (bart-samwel) wrote : Re: [Bug 211631] Re: CIFS/SMBFS shares not unmounted before network is shut down

Hi Steve,

Steve French wrote:
> A couple clarifications:
>
> 1) We really want the network file systems
> to be unmounted (or at least synced) before the network goes away.
> You do not want to risk losing file system data which has been cached
> by the Linux memory management layer.
>
> 2) If there is cached write data, we do want the file system to try
> as hard as reasonably possible (perhaps forever in the case of
> mounting with the "hard" mount option rather than the default "soft"
> mount) before giving up - the network which is down for a few
> seconds, may recover in most cases (where exactly we are in shutdown
> of the system may be hard to detect in this path in the kernel)

> 3) CIFS already does do the obvious - it does not attempt to send
> network requests in umount (SMB "tree disconnect" followed by SMB
> "ulogoff") if the session is already dead (the server implicitly
> closes "tids" and "smb uids" when the socket crashes). Write
> requests just prior to the umount getting to the kernel would cause
> attempts at reconnect, but simply from the kernel cifs driver
> perspective umounting should not cause network traffic if the session
> is already dead

I think there must be a bug somewhere in this code then. My cifs file
systems are all as read only as a read-write file system can be: I
almost never write to them, I just mount them by default so that I can
read from them (which I also almost never do), and also write to them
when I want, which is also not a daily thing. So I almost always shut
down in a situation where the file system has only been read from, not
written to -- and the reads are usually also a long time ago. No reason
at all to wait indefinitely!

For reference, all my cifs file systems are mounted below /nas/..., and
the following command:

# lsof | grep nas

shows nothing. No files open on the shares, and it's like that for most
of the time. Still, my system hangs at shutdown. There's *something*
fishy going on here. Do you know of any other commands I should try to
figure out if there is some dirty data left for the cifs file systems,
that somehow doesn't get written? Would it help to sync before I reboot
from the GUI, so that all pending dirty data is flushed to the cifs fs?

Cheers,
Bart