Commit 8861fd51 authored by Steve French's avatar Steve French
Browse files

smb3: fix lock ordering potential deadlock in cifs_sync_mid_result



Coverity spotted that the cifs_sync_mid_result function could deadlock

"Thread deadlock (ORDER_REVERSAL) lock_order: Calling spin_lock acquires
lock TCP_Server_Info.srv_lock while holding lock TCP_Server_Info.mid_lock"

Addresses-Coverity: 1590401 ("Thread deadlock (ORDER_REVERSAL)")
Cc: stable@vger.kernel.org
Reviewed-by: default avatarShyam Prasad N <sprasad@microsoft.com>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent 8094a600
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -909,12 +909,15 @@ cifs_sync_mid_result(struct mid_q_entry *mid, struct TCP_Server_Info *server)
			list_del_init(&mid->qhead);
			mid->mid_flags |= MID_DELETED;
		}
		spin_unlock(&server->mid_lock);
		cifs_server_dbg(VFS, "%s: invalid mid state mid=%llu state=%d\n",
			 __func__, mid->mid, mid->mid_state);
		rc = -EIO;
		goto sync_mid_done;
	}
	spin_unlock(&server->mid_lock);

sync_mid_done:
	release_mid(mid);
	return rc;
}