diff options
| -rw-r--r-- | drivers/nvme/target/fc.c | 9 |
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 | ||
