[PATCH] scsi: qla4xxx: add error handling for try_module_get

From: Zhouyang Jia
Date: Tue Jun 12 2018 - 00:48:40 EST


When try_module_get fails, the lack of error-handling code may
cause unexpected results.

This patch adds error-handling code after calling try_module_get.

Signed-off-by: Zhouyang Jia <jiazhouyang09@xxxxxxxxx>
---
drivers/scsi/qla4xxx/ql4_os.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
index 0e13349..6b677ab 100644
--- a/drivers/scsi/qla4xxx/ql4_os.c
+++ b/drivers/scsi/qla4xxx/ql4_os.c
@@ -7687,7 +7687,10 @@ static int qla4xxx_sysfs_ddb_logout_sid(struct iscsi_cls_session *cls_sess)
* to be seamless without actually destroying the
* session
**/
- try_module_get(qla4xxx_iscsi_transport.owner);
+ if (!try_module_get(qla4xxx_iscsi_transport.owner))
+ ql4_printk(KERN_WARNING, ha,
+ "%s: cannot get module.\n", __func__);
+
iscsi_destroy_endpoint(ddb_entry->conn->ep);

spin_lock_irqsave(&ha->hardware_lock, flags);
@@ -8970,7 +8973,9 @@ static void qla4xxx_destroy_fw_ddb_session(struct scsi_qla_host *ha)
* to be seamless without actually destroying the
* session
**/
- try_module_get(qla4xxx_iscsi_transport.owner);
+ if (!try_module_get(qla4xxx_iscsi_transport.owner))
+ ql4_printk(KERN_WARNING, ha,
+ "%s: cannot get module.\n", __func__);
iscsi_destroy_endpoint(ddb_entry->conn->ep);
qla4xxx_free_ddb(ha, ddb_entry);
iscsi_session_teardown(ddb_entry->sess);
--
2.7.4