read_unlock_irqrestore(&adapter->fsf_req_list_lock, flags); 
spin_unlock_irqrestore(&adapter->fsf_req_list_lock, flags); 
zfcp_adapter_dequeue(struct zfcp_adapter *adapter){	int retval = 0;	unsigned long flags;	device_unregister(&adapter->generic_services);	zfcp_sysfs_adapter_remove_files(&adapter->ccw_device->dev);	dev_set_drvdata(&adapter->ccw_device->dev, NULL);	/* sanity check: no pending FSF requests */	read_lock_irqsave(&adapter->fsf_req_list_lock, flags);	retval = !list_empty(&adapter->fsf_req_list_head);	read_unlock_irqrestore(&adapter->fsf_req_list_lock, flags);	if (retval) {		ZFCP_LOG_NORMAL("bug: adapter %s (%p) still in use, "				"%i requests outstanding\n",				zfcp_get_busid_by_adapter(adapter), adapter,				atomic_read(&adapter->fsf_reqs_active));		retval = -EBUSY;		goto out;	}	/* remove specified adapter data structure from list */	write_lock_irq(&zfcp_data.config_lock);	list_del(&adapter->list);	write_unlock_irq(&zfcp_data.config_lock);	/* decrease number of adapters in list */	zfcp_data.adapters--;	ZFCP_LOG_TRACE("adapter %s (%p) removed from list, "		       "%i adapters still in list\n",		       zfcp_get_busid_by_adapter(adapter),		       adapter, zfcp_data.adapters);	retval = qdio_free(adapter->ccw_device);	if (retval)		ZFCP_LOG_NORMAL("bug: qdio_free for adapter %s failed\n",				zfcp_get_busid_by_adapter(adapter));	zfcp_free_low_mem_buffers(adapter);	/* free memory of adapter data structure and queues */	zfcp_qdio_free_queues(adapter);	ZFCP_LOG_TRACE("freeing adapter structure\n");	kfree(adapter); out:	return;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/1db2c9c0931a53fe013db55fd2ff58859db31e8d/zfcp_aux.c/buggy/drivers/s390/scsi/zfcp_aux.c