mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-09 21:04:42 -04:00
cifs: fix lease break oops in xfstest generic/098
umount can race with lease break so need to check if
tcon->ses->server is still valid to send the lease
break response.
Reviewed-by: Bharath SM <bharathsm@microsoft.com>
Reviewed-by: Shyam Prasad N <sprasad@microsoft.com>
Fixes: 59a556aebc ("SMB3: drop reference to cfile before sending oplock break")
Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
@@ -4942,9 +4942,13 @@ void cifs_oplock_break(struct work_struct *work)
|
||||
* disconnected since oplock already released by the server
|
||||
*/
|
||||
if (!oplock_break_cancelled) {
|
||||
rc = tcon->ses->server->ops->oplock_response(tcon, persistent_fid,
|
||||
/* check for server null since can race with kill_sb calling tree disconnect */
|
||||
if (tcon->ses && tcon->ses->server) {
|
||||
rc = tcon->ses->server->ops->oplock_response(tcon, persistent_fid,
|
||||
volatile_fid, net_fid, cinode);
|
||||
cifs_dbg(FYI, "Oplock release rc = %d\n", rc);
|
||||
cifs_dbg(FYI, "Oplock release rc = %d\n", rc);
|
||||
} else
|
||||
pr_warn_once("lease break not sent for unmounted share\n");
|
||||
}
|
||||
|
||||
cifs_done_oplock_break(cinode);
|
||||
|
||||
Reference in New Issue
Block a user