diff options
author | tang.junhui <tang.junhui@zte.com.cn> | 2016-10-28 15:54:07 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-11-18 10:51:48 +0100 |
commit | 5fac70d772a4d360eb3453f76f860c68eb192f1d (patch) | |
tree | 6ee154337a5fb1124ea1e58cf4a326cd81012ff3 | |
parent | f29bcd11a170cb44ba36ef3bef22d7af147f1718 (diff) |
scsi: scsi_dh_alua: fix missing kref_put() in alua_rtpg_work()
commit 1fdd14279eab2e9f79745631379f0c53cb8f9a5a upstream.
Reference count of pg leaks in alua_rtpg_work() since kref_put() is not
called to decrease the reference count of pg when the condition
pg->rtpg_sdev==NULL satisfied (actually it is easy to satisfy), it would
cause memory of pg leakage.
Signed-off-by: tang.junhui <tang.junhui@zte.com.cn>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/scsi/device_handler/scsi_dh_alua.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c index 752b5c9d1ab2..6e825036be89 100644 --- a/drivers/scsi/device_handler/scsi_dh_alua.c +++ b/drivers/scsi/device_handler/scsi_dh_alua.c @@ -792,6 +792,7 @@ static void alua_rtpg_work(struct work_struct *work) WARN_ON(pg->flags & ALUA_PG_RUN_RTPG); WARN_ON(pg->flags & ALUA_PG_RUN_STPG); spin_unlock_irqrestore(&pg->lock, flags); + kref_put(&pg->kref, release_port_group); return; } if (pg->flags & ALUA_SYNC_STPG) |