[openib-general] Re: [PATCH 04/12] SRP: Changing ibsrpdm
    Michael S. Tsirkin 
    mst at mellanox.co.il
       
    Mon May  1 07:04:58 PDT 2006
    
    
  
Quoting r. Muli Ben-Yehuda <muli at il.ibm.com>:
> >  static ssize_t srp_create_target(struct class_device *class_dev,
> >  				 const char *buf, size_t count)
> >  {
> >  	struct srp_host *host =
> >  		container_of(class_dev, struct srp_host, class_dev);
> >  	struct Scsi_Host *target_host;
> > -	struct srp_target_port *target;
> > +	struct srp_target_port *target, *existing_target = NULL;
> >  	int ret;
> >  	int i;
> >  
> > +	/* first check if the target already exists */
> > +
> > +	mutex_lock(&host->target_mutex);
> > +	ret = srp_find_target(buf, host, &existing_target);
> > +	if (ret)
> > +		goto unlock_mutex;
> > +
> > +	if (existing_target) {
> > +		/* target already exists */
> > +		spin_lock_irq(existing_target->scsi_host->host_lock);
> 
> why _irq and not _irqsave? Are you sure this code can't ever be called
> with interrupts off via some other path?
Given the mutex_lock above, this better be true.
-- 
MST
    
    
More information about the general
mailing list