diff options
author | Mike Christie <michaelc@cs.wisc.edu> | 2011-02-16 15:04:33 -0600 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2011-02-24 12:41:05 -0500 |
commit | 22a39fbbfecfea703b686a4626a631d706ccb3ee (patch) | |
tree | d3d13184d9412310a6db0f9ae4423fd881a302cf /include/scsi | |
parent | fdafd4dfc7bbdd40a4692192b77299b28c8a948f (diff) | |
download | lwn-22a39fbbfecfea703b686a4626a631d706ccb3ee.tar.gz lwn-22a39fbbfecfea703b686a4626a631d706ccb3ee.zip |
[SCSI] iscsi: fix iscsi_endpoint leak
When iscsid restarts it does not know the connection's
endpoint, so it is getting leaked. This fixes the problem
by having the iscsi class force a disconnect before a
new connection is bound.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'include/scsi')
-rw-r--r-- | include/scsi/scsi_transport_iscsi.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/scsi/scsi_transport_iscsi.h b/include/scsi/scsi_transport_iscsi.h index 7fff94b3b2a8..b9ba349ef257 100644 --- a/include/scsi/scsi_transport_iscsi.h +++ b/include/scsi/scsi_transport_iscsi.h @@ -160,6 +160,8 @@ struct iscsi_cls_conn { void *dd_data; /* LLD private data */ struct iscsi_transport *transport; uint32_t cid; /* connection id */ + struct mutex ep_mutex; + struct iscsi_endpoint *ep; int active; /* must be accessed with the connlock */ struct device dev; /* sysfs transport/container device */ @@ -222,6 +224,7 @@ struct iscsi_endpoint { void *dd_data; /* LLD private data */ struct device dev; uint64_t id; + struct iscsi_cls_conn *conn; }; /* |