scsi: target: Fix cmd_count ref leak
authorMike Christie <michael.christie@oracle.com>
Sun, 1 Nov 2020 18:59:28 +0000 (12:59 -0600)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 5 Nov 2020 03:39:37 +0000 (22:39 -0500)
commit02dd4914b0bcb8fd8f8cad9817f5715a17466261
tree21fdafac85fc120b591f0cfb7aa3518bdf19cd05
parenta2b5d6f975a499bd50919a409c6a7c4cbf9d8a58
scsi: target: Fix cmd_count ref leak

percpu_ref_init sets the refcount to 1 and percpu_ref_kill drops it.
Drivers like iSCSI and loop do not call target_sess_cmd_list_set_waiting
during session shutdown, though, so they have been calling percpu_ref_exit
with a refcount still taken and leaking the cmd_counts memory.

Link: https://lore.kernel.org/r/1604257174-4524-3-git-send-email-michael.christie@oracle.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Mike Christie <michael.christie@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/target/target_core_transport.c