scsi: target: core: Fix memory leak in preempt_and_abort
Always release preempt_and_abort_list to avoid memory leak of t10_pr_registration objects in it. Link: https://lore.kernel.org/r/20220909090425.14479-3-d.bogdanov@yadro.com Reviewed-by: Mike Christie <michael.christie@oracle.com> Signed-off-by: Dmitry Bogdanov <d.bogdanov@yadro.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
1f1009ea8c
commit
f050a7c66c
@ -2956,13 +2956,14 @@ core_scsi3_pro_preempt(struct se_cmd *cmd, int type, int scope, u64 res_key,
|
||||
__core_scsi3_complete_pro_preempt(dev, pr_reg_n,
|
||||
(preempt_type == PREEMPT_AND_ABORT) ? &preempt_and_abort_list : NULL,
|
||||
type, scope, preempt_type);
|
||||
|
||||
if (preempt_type == PREEMPT_AND_ABORT)
|
||||
core_scsi3_release_preempt_and_abort(
|
||||
&preempt_and_abort_list, pr_reg_n);
|
||||
}
|
||||
|
||||
spin_unlock(&dev->dev_reservation_lock);
|
||||
|
||||
if (preempt_type == PREEMPT_AND_ABORT)
|
||||
core_scsi3_release_preempt_and_abort(
|
||||
&preempt_and_abort_list, pr_reg_n);
|
||||
|
||||
if (pr_tmpl->pr_aptpl_active)
|
||||
core_scsi3_update_and_write_aptpl(cmd->se_dev, true);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user