aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/nvme/target/fc.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/nvme/target/fc.c b/drivers/nvme/target/fc.c
index 1e9654f04c60..6b7bbf39fa06 100644
--- a/drivers/nvme/target/fc.c
+++ b/drivers/nvme/target/fc.c
@@ -1143,10 +1143,8 @@ __nvmet_fc_free_assocs(struct nvmet_fc_tgtport *tgtport)
1143 &tgtport->assoc_list, a_list) { 1143 &tgtport->assoc_list, a_list) {
1144 if (!nvmet_fc_tgt_a_get(assoc)) 1144 if (!nvmet_fc_tgt_a_get(assoc))
1145 continue; 1145 continue;
1146 spin_unlock_irqrestore(&tgtport->lock, flags); 1146 if (!schedule_work(&assoc->del_work))
1147 nvmet_fc_delete_target_assoc(assoc); 1147 nvmet_fc_tgt_a_put(assoc);
1148 nvmet_fc_tgt_a_put(assoc);
1149 spin_lock_irqsave(&tgtport->lock, flags);
1150 } 1148 }
1151 spin_unlock_irqrestore(&tgtport->lock, flags); 1149 spin_unlock_irqrestore(&tgtport->lock, flags);
1152} 1150}
@@ -1185,7 +1183,8 @@ nvmet_fc_delete_ctrl(struct nvmet_ctrl *ctrl)
1185 nvmet_fc_tgtport_put(tgtport); 1183 nvmet_fc_tgtport_put(tgtport);
1186 1184
1187 if (found_ctrl) { 1185 if (found_ctrl) {
1188 schedule_work(&assoc->del_work); 1186 if (!schedule_work(&assoc->del_work))
1187 nvmet_fc_tgt_a_put(assoc);
1189 return; 1188 return;
1190 } 1189 }
1191 1190