wait_event_lock_irq(conf->wait_for_stripe, conf->quiesce == 0, conf->device_lock, /* nothing */); 
static struct stripe_head *get_active_stripe(raid5_conf_t *conf, sector_t sector,					     int pd_idx, int noblock) {	struct stripe_head *sh;	PRINTK("get_stripe, sector %llu\n", (unsigned long long)sector);	spin_lock_irq(&conf->device_lock);	do {		sh = __find_stripe(conf, sector);		if (!sh) {			if (!conf->inactive_blocked)				sh = get_free_stripe(conf);			if (noblock && sh == NULL)				break;			if (!sh) {				conf->inactive_blocked = 1;				wait_event_lock_irq(conf->wait_for_stripe,						    !list_empty(&conf->inactive_list) &&						    (atomic_read(&conf->active_stripes) < (NR_STRIPES *3/4)						     || !conf->inactive_blocked),						    conf->device_lock,						    unplug_slaves(conf->mddev);					);				conf->inactive_blocked = 0;			} else				init_stripe(sh, sector, pd_idx);		} else {			if (atomic_read(&sh->count)) {				if (!list_empty(&sh->lru))					BUG();			} else {				if (!test_bit(STRIPE_HANDLE, &sh->state))					atomic_inc(&conf->active_stripes);				if (list_empty(&sh->lru))					BUG();				list_del_init(&sh->lru);			}		}	} while (sh == NULL);	if (sh)		atomic_inc(&sh->count);	spin_unlock_irq(&conf->device_lock);	return sh;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/72626685dc66d455742a7f215a0535c551628b9e/raid5.c/clean/drivers/md/raid5.c