mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 02:50:49 +09:00
cifs: fix lease break oops in xfstest generic/098
[ Upstream commitc774e6779f] 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> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
e8119d4d16
commit
d7d6e830cd
@@ -5146,9 +5146,13 @@ oplock_break_ack:
|
|||||||
* disconnected since oplock already released by the server
|
* disconnected since oplock already released by the server
|
||||||
*/
|
*/
|
||||||
if (!oplock_break_cancelled) {
|
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);
|
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);
|
cifs_done_oplock_break(cinode);
|
||||||
|
|||||||
Reference in New Issue
Block a user