} 
static inline void __release_stripe(raid5_conf_t *conf, struct stripe_head *sh){	if (atomic_dec_and_test(&sh->count)) {		if (!list_empty(&sh->lru))			BUG();		if (atomic_read(&conf->active_stripes)==0)			BUG();		if (test_bit(STRIPE_HANDLE, &sh->state)) {			if (test_bit(STRIPE_DELAYED, &sh->state))				list_add_tail(&sh->lru, &conf->delayed_list);			else				list_add_tail(&sh->lru, &conf->handle_list);			md_wakeup_thread(conf->mddev->thread);		} else {			if (test_and_clear_bit(STRIPE_PREREAD_ACTIVE, &sh->state)) {				atomic_dec(&conf->preread_active_stripes);				if (atomic_read(&conf->preread_active_stripes) < IO_THRESHOLD)					md_wakeup_thread(conf->mddev->thread);			}			list_add_tail(&sh->lru, &conf->inactive_list);			atomic_dec(&conf->active_stripes);			if (!conf->inactive_blocked ||			    atomic_read(&conf->active_stripes) < (NR_STRIPES*3/4))				wake_up(&conf->wait_for_stripe);		}	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/72626685dc66d455742a7f215a0535c551628b9e/raid5.c/clean/drivers/md/raid5.c