From ea9d287e44aa248b7871414b0c6a4dea24293a0d Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Sun, 25 Dec 2011 19:41:07 +0000 Subject: [PATCH] --- yaml --- r: 343679 b: refs/heads/master c: ee12d6a80cfcd08b862ed3c8e109442e466b0302 h: refs/heads/master i: 343677: 652f084917fa10fd9a26b260ccbdd636c393fc16 343675: c29cc68773ef2726eabbc75d16ad42e42a981afa 343671: bad4ca1585cd7de1d79635a307f81b73de0c8623 343663: 96d721d73a9abcca48191e15de477e5862efe306 343647: 03c054a2efcf19fd50585064563eb870736d78e5 343615: c1055388b60fc980a49911d61622b2f9e7933a58 343551: ce28f3ce3a368972ce0ed61f0cfc827ed3accc12 v: v3 --- [refs] | 2 +- trunk/drivers/infiniband/ulp/srp/ib_srp.c | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index 3ca8e445d2a5..deea920288bd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 294c875a65269361defd7aeb97804ba99eb57cbf +refs/heads/master: ee12d6a80cfcd08b862ed3c8e109442e466b0302 diff --git a/trunk/drivers/infiniband/ulp/srp/ib_srp.c b/trunk/drivers/infiniband/ulp/srp/ib_srp.c index 3c64bf400c20..beb68786001e 100644 --- a/trunk/drivers/infiniband/ulp/srp/ib_srp.c +++ b/trunk/drivers/infiniband/ulp/srp/ib_srp.c @@ -506,6 +506,17 @@ static void srp_del_scsi_host_attr(struct Scsi_Host *shost) device_remove_file(&shost->shost_dev, *attr); } +static void srp_remove_target(struct srp_target_port *target) +{ + srp_del_scsi_host_attr(target->scsi_host); + srp_remove_host(target->scsi_host); + scsi_remove_host(target->scsi_host); + ib_destroy_cm_id(target->cm_id); + srp_free_target_ib(target); + srp_free_req_data(target); + scsi_host_put(target->scsi_host); +} + static void srp_remove_work(struct work_struct *work) { struct srp_target_port *target = @@ -518,13 +529,7 @@ static void srp_remove_work(struct work_struct *work) list_del(&target->list); spin_unlock(&target->srp_host->target_lock); - srp_del_scsi_host_attr(target->scsi_host); - srp_remove_host(target->scsi_host); - scsi_remove_host(target->scsi_host); - ib_destroy_cm_id(target->cm_id); - srp_free_target_ib(target); - srp_free_req_data(target); - scsi_host_put(target->scsi_host); + srp_remove_target(target); } static int srp_connect_target(struct srp_target_port *target)