p->rdev = rdev; 
rcu_assign_pointer(p->rdev, rdev); 
static int raid1_add_disk(mddev_t *mddev, mdk_rdev_t *rdev){	conf_t *conf = mddev->private;	int found = 0;	int mirror = 0;	mirror_info_t *p;	if (rdev->saved_raid_disk >= 0 &&	    conf->mirrors[rdev->saved_raid_disk].rdev == NULL)		mirror = rdev->saved_raid_disk;	for (mirror=0; mirror < mddev->raid_disks; mirror++)		if ( !(p=conf->mirrors+mirror)->rdev) {			blk_queue_stack_limits(mddev->queue,					       rdev->bdev->bd_disk->queue);			/* as we don't honour merge_bvec_fn, we must never risk			 * violating it, so limit ->max_sector to one PAGE, as			 * a one page request is never in violation.			 */			if (rdev->bdev->bd_disk->queue->merge_bvec_fn &&			    mddev->queue->max_sectors > (PAGE_SIZE>>9))				blk_queue_max_sectors(mddev->queue, PAGE_SIZE>>9);			p->head_position = 0;			rdev->raid_disk = mirror;			found = 1;			if (rdev->saved_raid_disk != mirror)				conf->fullsync = 1;			p->rdev = rdev;			break;		}	print_conf(conf);	return found;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/d6065f7bf8bec170c9c56524a250093ce73ca5d9/raid1.c/buggy/drivers/md/raid1.c