bitmap_start_sync(mddev->bitmap, sector_nr, &sync_blocks, 0); 
static sector_t sync_request(mddev_t *mddev, sector_t sector_nr, int *skipped, int go_faster){	raid5_conf_t *conf = (raid5_conf_t *) mddev->private;	struct stripe_head *sh;	int sectors_per_chunk = conf->chunk_size >> 9;	sector_t x;	unsigned long stripe;	int chunk_offset;	int dd_idx, pd_idx;	sector_t first_sector;	int raid_disks = conf->raid_disks;	int data_disks = raid_disks-1;	if (sector_nr >= mddev->size <<1) {		/* just being told to finish up .. nothing much to do */		unplug_slaves(mddev);		return 0;	}	/* if there is 1 or more failed drives and we are trying	 * to resync, then assert that we are finished, because there is	 * nothing we can do.	 */	if (mddev->degraded >= 1 && test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) {		sector_t rv = (mddev->size << 1) - sector_nr;		*skipped = 1;		return rv;	}	x = sector_nr;	chunk_offset = sector_div(x, sectors_per_chunk);	stripe = x;	BUG_ON(x != stripe);	first_sector = raid5_compute_sector((sector_t)stripe*data_disks*sectors_per_chunk		+ chunk_offset, raid_disks, data_disks, &dd_idx, &pd_idx, conf);	sh = get_active_stripe(conf, sector_nr, pd_idx, 1);	if (sh == NULL) {		sh = get_active_stripe(conf, sector_nr, pd_idx, 0);		/* make sure we don't swamp the stripe cache if someone else		 * is trying to get access 		 */		set_current_state(TASK_UNINTERRUPTIBLE);		schedule_timeout(1);	}	spin_lock(&sh->lock);		set_bit(STRIPE_SYNCING, &sh->state);	clear_bit(STRIPE_INSYNC, &sh->state);	spin_unlock(&sh->lock);	handle_stripe(sh);	release_stripe(sh);	return STRIPE_SECTORS;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/72626685dc66d455742a7f215a0535c551628b9e/raid5.c/clean/drivers/md/raid5.c