summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/scsi_transport_iscsi.c
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2008-06-16 10:11:32 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-07-12 08:22:29 -0500
commitc95fddc729fafb43f420747027eeb998c2e5e798 (patch)
treeb40cce114afe66272434758746b29354bfe7dcbe /drivers/scsi/scsi_transport_iscsi.c
parentff0f4cb5ea322dcc32d08bab2d758c050ba1ab07 (diff)
[SCSI] iscsi class: fix refcount leak
Must do a module_out if the endpoint lookup fails. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/scsi_transport_iscsi.c')
-rw-r--r--drivers/scsi/scsi_transport_iscsi.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
index 9fd5c6d87ed..bc0f74d4ea0 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -1422,8 +1422,10 @@ iscsi_if_recv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
break;
case ISCSI_UEVENT_CREATE_BOUND_SESSION:
ep = iscsi_lookup_endpoint(ev->u.c_bound_session.ep_handle);
- if (!ep)
- return -EINVAL;
+ if (!ep) {
+ err = -EINVAL;
+ break;
+ }
err = iscsi_if_create_session(priv, ep, ev,
ev->u.c_bound_session.initial_cmdsn,