When an fcoe interface is being destroyed; in the process the
fcoe driver will try to release all the resources it had allocated 
for that interface including rports. But, it seems that it does not
release the reference held for the name server rport in that process
resulting into a memory leak. This patch fixes that memory leak.

Signed-off-by: Neerav Parikh <[email protected]>
Tested-by: Ross Brattain <[email protected]>

---

 drivers/scsi/libfc/fc_rport.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/libfc/fc_rport.c b/drivers/scsi/libfc/fc_rport.c
index 59b16bb..49e1ccc 100644
--- a/drivers/scsi/libfc/fc_rport.c
+++ b/drivers/scsi/libfc/fc_rport.c
@@ -357,6 +357,7 @@ static void fc_rport_work(struct work_struct *work)
                        if (port_id == FC_FID_DIR_SERV) {
                                rdata->event = RPORT_EV_NONE;
                                mutex_unlock(&rdata->rp_mutex);
+                               kref_put(&rdata->kref, lport->tt.rport_destroy);
                        } else if ((rdata->flags & FC_RP_STARTED) &&
                                   rdata->major_retries <
                                   lport->max_rport_retry_count) {

_______________________________________________
devel mailing list
[email protected]
https://lists.open-fcoe.org/mailman/listinfo/devel

Reply via email to