*	Alocate and initialize a Fib 
*	Allocate and initialize a Fib 
static int aac_synchronize(struct scsi_cmnd *scsicmd, int cid){	int status;	struct fib *cmd_fibcontext;	struct aac_synchronize *synchronizecmd;	struct scsi_cmnd *cmd;	struct scsi_device *sdev = scsicmd->device;	int active = 0;	unsigned long flags;	/*	 * Wait for all commands to complete to this specific	 * target (block).	 */	spin_lock_irqsave(&sdev->list_lock, flags);	list_for_each_entry(cmd, &sdev->cmd_list, list)		if (cmd != scsicmd && cmd->serial_number != 0) {			++active;			break;		}	spin_unlock_irqrestore(&sdev->list_lock, flags);	/*	 *	Yield the processor (requeue for later)	 */	if (active)		return SCSI_MLQUEUE_DEVICE_BUSY;	/*	 *	Alocate and initialize a Fib	 */	if (!(cmd_fibcontext = 	    fib_alloc((struct aac_dev *)scsicmd->device->host->hostdata))) 		return SCSI_MLQUEUE_HOST_BUSY;	fib_init(cmd_fibcontext);	synchronizecmd = fib_data(cmd_fibcontext);	synchronizecmd->command = cpu_to_le32(VM_ContainerConfig);	synchronizecmd->type = cpu_to_le32(CT_FLUSH_CACHE);	synchronizecmd->cid = cpu_to_le32(cid);	synchronizecmd->count = 	     cpu_to_le32(sizeof(((struct aac_synchronize_reply *)NULL)->data));	/*	 *	Now send the Fib to the adapter	 */	status = fib_send(ContainerCommand,		  cmd_fibcontext,		  sizeof(struct aac_synchronize),		  FsaNormal,		  0, 1,		  (fib_callback)synchronize_callback,		  (void *)scsicmd);	/*	 *	Check that the command queued to the controller	 */	if (status == -EINPROGRESS)		return 0;	printk(KERN_WARNING 		"aac_synchronize: fib_send failed with status: %d.\n", status);	fib_complete(cmd_fibcontext);	fib_free(cmd_fibcontext);	return SCSI_MLQUEUE_HOST_BUSY;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/7c00ffa314bf0fb0e23858bbebad33b48b6abbb9/aachba.c/clean/drivers/scsi/aacraid/aachba.c