Skip to content

Commit

Permalink
address lock imbalance warnings in smbdirect.c
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reviewed-by: Ronnie Sahlberg <[email protected]>
  • Loading branch information
smfrench committed Feb 7, 2018
1 parent ade7db9 commit f9de151
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions fs/cifs/smbdirect.c
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit f9de151

Please sign in to comment.