[openib-general] [PATCHE 02/12] SRP: changing ibsrpdm

Ishai Rabinovitz ishai at mellanox.co.il
Mon May 1 11:51:00 PDT 2006


On Mon, May 01, 2006 at 04:33:42PM +0300, Muli Ben-Yehuda wrote:
> On Mon, May 01, 2006 at 02:25:46PM +0300, Ishai Rabinovitz wrote:
> > 
> > Move the destruction of the host and the removal from a list to a function.
> > 
> > Signed-off-by: Ishai Rabinovitz <ishai at mellanox.co.il>
> > 
> > Index: last_stable/drivers/infiniband/ulp/srp/ib_srp.c
> > ===================================================================
> > --- last_stable.orig/drivers/infiniband/ulp/srp/ib_srp.c	2006-04-23 14:08:03.000000000 +0300
> > +++ last_stable/drivers/infiniband/ulp/srp/ib_srp.c	2006-04-24 10:47:00.000000000 +0300
> > @@ -344,6 +344,16 @@ static void srp_disconnect_target(struct
> >  	wait_for_completion(&target->done);
> >  }
> >  
> > +static void destruct_scsi_host_and_target(struct srp_target_port *target, int disconnect_target)
> > +{
> > +	scsi_remove_host(target->scsi_host);
> > +	if (disconnect_target)
> > +		srp_disconnect_target(target);
> > +	ib_destroy_cm_id(target->cm_id);
> > +	srp_free_target_ib(target);
> > +	scsi_host_put(target->scsi_host);
> > +}
> > +
> >  static void srp_remove_work(void *target_ptr)
> >  {
> >  	struct srp_target_port *target = target_ptr;
> > @@ -357,10 +374,7 @@ static void srp_remove_work(void *target
> > 	list_del(&target->list);
> > 	mutex_unlock(&target->srp_host->target_mutex);
> >  
> > -	scsi_remove_host(target->scsi_host);
> > -	ib_destroy_cm_id(target->cm_id);
> > -	srp_free_target_ib(target);
> > -	scsi_host_put(target->scsi_host);
> > +	destruct_scsi_host_and_target(target, 0);
> 
> Is not disconnecting from the target here actually the right thing to
> do? considering we're then destroying the target's queue pairs and
> freeing it?
> 
> Cheers,
> Muli

Hi Muli,

srp_remove_target is being called only when we were unable to reconnect 
in srp_reconnect_target so the target is already disconnected.

Ishai

-- 
Ishai Rabinovitz



More information about the general mailing list