On Tue, Aug 01, 2017 at 03:12:39PM -0700, James Smart wrote:
> @@ -463,9 +472,9 @@ static struct nvmet_fc_fcp_iod *
>  nvmet_fc_alloc_fcp_iod(struct nvmet_fc_tgt_queue *queue)
>  {
>       static struct nvmet_fc_fcp_iod *fod;
> -     unsigned long flags;
>  
> -     spin_lock_irqsave(&queue->qlock, flags);
> +     /* Caller must hold queue->qlock */
+       lockped_assert_held(&queue->qlock); 
So we can check if the caller really holds the queue lock.

> +
>       fod = list_first_entry_or_null(&queue->fod_list,
>                                       struct nvmet_fc_fcp_iod, fcp_list);
>       if (fod) {

[...]

> +     for (;;) {
> +             deferfcp = list_first_entry_or_null(&queue->pending_cmd_list,
> +                             struct nvmet_fc_defer_fcp_req, req_list);
> +             if (!deferfcp)
> +                     break;

        while ((deferfcp = list_first_entry_or_null(&queue->pending_cmd_list,
                                struct nvmet_fc_defer_fcp_req,
                                req_list)) != NULL) {
?

Other than that,
Reviewed-by: Johannes Thumshirn <jthumsh...@suse.de>

-- 
Johannes Thumshirn                                          Storage
jthumsh...@suse.de                                +49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850

Reply via email to