rdev->sb_size = MD_SB_BYTES; 
static int super_90_load(mdk_rdev_t *rdev, mdk_rdev_t *refdev, int minor_version){	char b[BDEVNAME_SIZE], b2[BDEVNAME_SIZE];	mdp_super_t *sb;	int ret;	sector_t sb_offset;	/*	 * Calculate the position of the superblock,	 * it's at the end of the disk.	 *	 * It also happens to be a multiple of 4Kb.	 */	sb_offset = calc_dev_sboffset(rdev->bdev);	rdev->sb_offset = sb_offset;	ret = read_disk_sb(rdev);	if (ret) return ret;	ret = -EINVAL;	bdevname(rdev->bdev, b);	sb = (mdp_super_t*)page_address(rdev->sb_page);	if (sb->md_magic != MD_SB_MAGIC) {		printk(KERN_ERR "md: invalid raid superblock magic on %s\n",		       b);		goto abort;	}	if (sb->major_version != 0 ||	    sb->minor_version != 90) {		printk(KERN_WARNING "Bad version number %d.%d on %s\n",			sb->major_version, sb->minor_version,			b);		goto abort;	}	if (sb->raid_disks <= 0)		goto abort;	if (csum_fold(calc_sb_csum(sb)) != csum_fold(sb->sb_csum)) {		printk(KERN_WARNING "md: invalid superblock checksum on %s\n",			b);		goto abort;	}	rdev->preferred_minor = sb->md_minor;	rdev->data_offset = 0;	if (sb->level == LEVEL_MULTIPATH)		rdev->desc_nr = -1;	else		rdev->desc_nr = sb->this_disk.number;	if (refdev == 0)		ret = 1;	else {		__u64 ev1, ev2;		mdp_super_t *refsb = (mdp_super_t*)page_address(refdev->sb_page);		if (!uuid_equal(refsb, sb)) {			printk(KERN_WARNING "md: %s has different UUID to %s\n",				b, bdevname(refdev->bdev,b2));			goto abort;		}		if (!sb_equal(refsb, sb)) {			printk(KERN_WARNING "md: %s has same UUID"			       " but different superblock to %s\n",			       b, bdevname(refdev->bdev, b2));			goto abort;		}		ev1 = md_event(sb);		ev2 = md_event(refsb);		if (ev1 > ev2)			ret = 1;		else 			ret = 0;	}	rdev->size = calc_dev_size(rdev, sb->chunk_size); abort:	return ret;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/0002b2718dd04da67c21f8a7830de8d95a9b0345/md.c/clean/drivers/md/md.c