 if (host->busy_initializing) return -EBUSY; 
static int cciss_open(struct inode *inode, struct file *filep){	ctlr_info_t *host = get_host(inode->i_bdev->bd_disk);	drive_info_struct *drv = get_drv(inode->i_bdev->bd_disk);#ifdef CCISS_DEBUG	printk(KERN_DEBUG "cciss_open %s\n", inode->i_bdev->bd_disk->disk_name);#endif /* CCISS_DEBUG */ 	if (host->busy_initializing)		return -EBUSY;	if (host->busy_initializing || drv->busy_configuring)		return -EBUSY;	/*	 * Root is allowed to open raw volume zero even if it's not configured	 * so array config can still work. Root is also allowed to open any	 * volume that has a LUN ID, so it can issue IOCTL to reread the	 * disk information.  I don't think I really like this	 * but I'm already using way to many device nodes to claim another one	 * for "raw controller".	 */	if (drv->nr_blocks == 0) {		if (iminor(inode) != 0)	{ 	/* not node 0? */			/* if not node 0 make sure it is a partition = 0 */			if (iminor(inode) & 0x0f) {			return -ENXIO;				/* if it is, make sure we have a LUN ID */			} else if (drv->LunID == 0) {				return -ENXIO;			}		}		if (!capable(CAP_SYS_ADMIN))			return -EPERM;	}	drv->usage_count++;	host->usage_count++;	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/d6dbf42ee36d4f9ffc2a93877c19937c81974124/cciss.c/buggy/drivers/block/cciss.c