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