address lock imbalance warnings in smbdirect.c

Although at least one of these was an overly strict sparse warning
in the new smbdirect code, it is cleaner to fix - so no warnings.

Signed-off-by: Steve French <smfrench@gmail.com>
Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
This commit is contained in:
Steve French 2018-02-03 19:45:07 -06:00
parent ade7db991b
commit f9de151bf2
1 changed files with 9 additions and 7 deletions

View File

@ -217,9 +217,10 @@ static void smbd_destroy_rdma_work(struct work_struct *work)
spin_unlock_irqrestore(
&info->reassembly_queue_lock, flags);
put_receive_buffer(info, response);
}
} else
spin_unlock_irqrestore(&info->reassembly_queue_lock, flags);
} while (response);
spin_unlock_irqrestore(&info->reassembly_queue_lock, flags);
info->reassembly_data_length = 0;
log_rdma_event(INFO, "free receive buffers\n");
@ -1934,15 +1935,16 @@ static int smbd_recv_buf(struct smbd_connection *info, char *buf,
* No need to lock if we are not at the
* end of the queue
*/
if (!queue_length)
if (queue_length)
list_del(&response->list);
else {
spin_lock_irq(
&info->reassembly_queue_lock);
list_del(&response->list);
queue_removed++;
if (!queue_length)
list_del(&response->list);
spin_unlock_irq(
&info->reassembly_queue_lock);
}
queue_removed++;
info->count_reassembly_queue--;
info->count_dequeue_reassembly_queue++;
put_receive_buffer(info, response);