In dequeue_mid we can log an error while holding a spinlock,
GlobalMid_Lock.  Coverity notes that the error logging
also grabs a lock so it is cleaner (and a bit safer) to
release the GlobalMid_Lock before logging the warning.
Addresses-Coverity: 
1507573 ("Thread deadlock")
Reviewed-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
Signed-off-by: Steve French <stfrench@microsoft.com>
 
         * Trying to handle/dequeue a mid after the send_recv()
         * function has finished processing it is a bug.
         */
-       if (mid->mid_flags & MID_DELETED)
+       if (mid->mid_flags & MID_DELETED) {
+               spin_unlock(&GlobalMid_Lock);
                pr_warn_once("trying to dequeue a deleted mid\n");
-       else {
+       } else {
                list_del_init(&mid->qhead);
                mid->mid_flags |= MID_DELETED;
+               spin_unlock(&GlobalMid_Lock);
        }
-       spin_unlock(&GlobalMid_Lock);
 }
 
 static unsigned int