Hannes Reinecke 839be5
From: James Smart <jsmart2021@gmail.com>
Hannes Reinecke 839be5
Date: Tue, 31 Mar 2020 09:49:56 -0700
Hannes Reinecke 839be5
Subject: [PATCH] nvmet-fc: perform small cleanups on unneeded checks
Hannes Reinecke 839be5
Git-commit: e72914f70db194d98ade0711b088fd062a72c033
Hannes Reinecke 839be5
Git-repo: git://git.infradead.org/nvme.git
Hannes Reinecke 839be5
Patch-mainline: Queued in subsystem maintainer repository
Hannes Reinecke 839be5
References: bsc#1169045
Hannes Reinecke 839be5
Hannes Reinecke 839be5
While code reviewing saw a couple of items that can be cleaned up:
Hannes Reinecke 839be5
- In nvmet_fc_delete_target_queue(), the routine unlocks, then checks
Hannes Reinecke 839be5
  and relocks.  Reorganize to avoid the unlock/relock.
Hannes Reinecke 839be5
- In nvmet_fc_delete_target_queue(), there's a check on the disconnect
Hannes Reinecke 839be5
  state that is unnecessary as the routine validates the state before
Hannes Reinecke 839be5
  starting any action.
Hannes Reinecke 839be5
Hannes Reinecke 839be5
Signed-off-by: James Smart <jsmart2021@gmail.com>
Hannes Reinecke 839be5
Signed-off-by: Christoph Hellwig <hch@lst.de>
Hannes Reinecke 839be5
Acked-by: Hannes Reinecke <hare@suse.com>
Hannes Reinecke 839be5
---
Hannes Reinecke 839be5
 drivers/nvme/target/fc.c | 13 +++++--------
Hannes Reinecke 839be5
 1 file changed, 5 insertions(+), 8 deletions(-)
Hannes Reinecke 839be5
Hannes Reinecke 839be5
diff --git a/drivers/nvme/target/fc.c b/drivers/nvme/target/fc.c
Hannes Reinecke 839be5
index a91c443c9098..01488fc35d46 100644
Hannes Reinecke 839be5
--- a/drivers/nvme/target/fc.c
Hannes Reinecke 839be5
+++ b/drivers/nvme/target/fc.c
Hannes Reinecke 839be5
@@ -677,7 +677,7 @@ nvmet_fc_delete_target_queue(struct nvmet_fc_tgt_queue *queue)
Hannes Reinecke 839be5
 	struct nvmet_fc_fcp_iod *fod = queue->fod;
Hannes Reinecke 839be5
 	struct nvmet_fc_defer_fcp_req *deferfcp, *tempptr;
Hannes Reinecke 839be5
 	unsigned long flags;
Hannes Reinecke 839be5
-	int i, writedataactive;
Hannes Reinecke 839be5
+	int i;
Hannes Reinecke 839be5
 	bool disconnect;
Hannes Reinecke 839be5
 
Hannes Reinecke 839be5
 	disconnect = atomic_xchg(&queue->connected, 0);
Hannes Reinecke 839be5
@@ -688,20 +688,18 @@ nvmet_fc_delete_target_queue(struct nvmet_fc_tgt_queue *queue)
Hannes Reinecke 839be5
 		if (fod->active) {
Hannes Reinecke 839be5
 			spin_lock(&fod->flock);
Hannes Reinecke 839be5
 			fod->abort = true;
Hannes Reinecke 839be5
-			writedataactive = fod->writedataactive;
Hannes Reinecke 839be5
-			spin_unlock(&fod->flock);
Hannes Reinecke 839be5
 			/*
Hannes Reinecke 839be5
 			 * only call lldd abort routine if waiting for
Hannes Reinecke 839be5
 			 * writedata. other outstanding ops should finish
Hannes Reinecke 839be5
 			 * on their own.
Hannes Reinecke 839be5
 			 */
Hannes Reinecke 839be5
-			if (writedataactive) {
Hannes Reinecke 839be5
-				spin_lock(&fod->flock);
Hannes Reinecke 839be5
+			if (fod->writedataactive) {
Hannes Reinecke 839be5
 				fod->aborted = true;
Hannes Reinecke 839be5
 				spin_unlock(&fod->flock);
Hannes Reinecke 839be5
 				tgtport->ops->fcp_abort(
Hannes Reinecke 839be5
 					&tgtport->fc_target_port, fod->fcpreq);
Hannes Reinecke 839be5
-			}
Hannes Reinecke 839be5
+			} else
Hannes Reinecke 839be5
+				spin_unlock(&fod->flock);
Hannes Reinecke 839be5
 		}
Hannes Reinecke 839be5
 	}
Hannes Reinecke 839be5
 
Hannes Reinecke 839be5
@@ -741,8 +739,7 @@ nvmet_fc_delete_target_queue(struct nvmet_fc_tgt_queue *queue)
Hannes Reinecke 839be5
 
Hannes Reinecke 839be5
 	flush_workqueue(queue->work_q);
Hannes Reinecke 839be5
 
Hannes Reinecke 839be5
-	if (disconnect)
Hannes Reinecke 839be5
-		nvmet_sq_destroy(&queue->nvme_sq);
Hannes Reinecke 839be5
+	nvmet_sq_destroy(&queue->nvme_sq);
Hannes Reinecke 839be5
 
Hannes Reinecke 839be5
 	nvmet_fc_tgt_q_put(queue);
Hannes Reinecke 839be5
 }
Hannes Reinecke 839be5
-- 
Hannes Reinecke 839be5
2.16.4
Hannes Reinecke 839be5