diff options
-rw-r--r-- | drivers/target/target_core_transport.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c index c9e8b35a954f..4ef11145c746 100644 --- a/drivers/target/target_core_transport.c +++ b/drivers/target/target_core_transport.c | |||
@@ -2424,6 +2424,10 @@ static void target_release_cmd_kref(struct kref *kref) | |||
2424 | */ | 2424 | */ |
2425 | int target_put_sess_cmd(struct se_session *se_sess, struct se_cmd *se_cmd) | 2425 | int target_put_sess_cmd(struct se_session *se_sess, struct se_cmd *se_cmd) |
2426 | { | 2426 | { |
2427 | if (!se_sess) { | ||
2428 | se_cmd->se_tfo->release_cmd(se_cmd); | ||
2429 | return 1; | ||
2430 | } | ||
2427 | return kref_put_spinlock_irqsave(&se_cmd->cmd_kref, target_release_cmd_kref, | 2431 | return kref_put_spinlock_irqsave(&se_cmd->cmd_kref, target_release_cmd_kref, |
2428 | &se_sess->sess_cmd_lock); | 2432 | &se_sess->sess_cmd_lock); |
2429 | } | 2433 | } |