Ack by me. On Tue, May 9, 2023 at 12:05 PM Steve French <smfrench@xxxxxxxxx> wrote: > > In investigating a failure with xfstest generic/392 it > was noticed that mounts were reusing a superblock that should > already have been freed. This turned out to be related to > deferred close files keeping a reference count until the > closetimeo expired. > > Currently the only way an fs knows that mount is beginning is > when force unmount is called, but when this, ie umount_begin(), > is called all deferred close files on the share (tree > connection) should be closed immediately (unless shared by > another mount) to avoid using excess resources on the server > and to avoid reusing a superblock which should already be freed. > > In umount_begin, close all deferred close handles for that > share if this is the last mount using that share on this > client (ie send the SMB3 close request over the wire for those > that have been already closed by the app but that we have > kept a handle lease open for and have not sent closes to the > server for yet). > > Reported-by: David Howells <dhowells@xxxxxxxxxx> > Cc: <stable@xxxxxxxxxxxxxxx> > Fixes: 78c09634f7dc ("Cifs: Fix kernel oops caused by deferred close > for files.") > > See attached > -- > Thanks, > > Steve