p->rdev = rdev; 
rcu_assign_pointer(p->rdev, rdev); 
static int multipath_add_disk(mddev_t *mddev, mdk_rdev_t *rdev){	multipath_conf_t *conf = mddev->private;	int found = 0;	int path;	struct multipath_info *p;	print_multipath_conf(conf);	for (path=0; path<mddev->raid_disks; path++) 		if ((p=conf->multipaths+path)->rdev == NULL) {			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.		 * (Note: it is very unlikely that a device with		 * merge_bvec_fn will be involved in multipath.)		 */			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);			conf->working_disks++;			rdev->raid_disk = path;			rdev->in_sync = 1;			p->rdev = rdev;			found = 1;		}	print_multipath_conf(conf);	return found;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/d6065f7bf8bec170c9c56524a250093ce73ca5d9/multipath.c/clean/drivers/md/multipath.c