forked from mirrors/linux
		
	md: remove ->changed and related code.
We set ->changed to 1 and call check_disk_change at the end of md_open so that bd_invalidated would be set and thus partition rescan would happen appropriately. Now that we call revalidate_disk directly, which sets bd_invalidates, that indirection is no longer needed and can be removed. Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
		
							parent
							
								
									49ce6cea85
								
							
						
					
					
						commit
						b821eaa572
					
				
					 4 changed files with 1 additions and 25 deletions
				
			
		| 
						 | 
					@ -4501,7 +4501,6 @@ static int do_md_run(mddev_t * mddev)
 | 
				
			||||||
	md_wakeup_thread(mddev->sync_thread); /* possibly kick off a reshape */
 | 
						md_wakeup_thread(mddev->sync_thread); /* possibly kick off a reshape */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	revalidate_disk(mddev->gendisk);
 | 
						revalidate_disk(mddev->gendisk);
 | 
				
			||||||
	mddev->changed = 1;
 | 
					 | 
				
			||||||
	md_new_event(mddev);
 | 
						md_new_event(mddev);
 | 
				
			||||||
	sysfs_notify_dirent(mddev->sysfs_state);
 | 
						sysfs_notify_dirent(mddev->sysfs_state);
 | 
				
			||||||
	if (mddev->sysfs_action)
 | 
						if (mddev->sysfs_action)
 | 
				
			||||||
| 
						 | 
					@ -4620,7 +4619,7 @@ static int do_md_stop(mddev_t * mddev, int mode, int is_open)
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			set_capacity(disk, 0);
 | 
								set_capacity(disk, 0);
 | 
				
			||||||
			mddev->changed = 1;
 | 
								revalidate_disk(disk);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if (mddev->ro)
 | 
								if (mddev->ro)
 | 
				
			||||||
				mddev->ro = 0;
 | 
									mddev->ro = 0;
 | 
				
			||||||
| 
						 | 
					@ -4686,7 +4685,6 @@ static int do_md_stop(mddev_t * mddev, int mode, int is_open)
 | 
				
			||||||
		mddev->sync_speed_min = mddev->sync_speed_max = 0;
 | 
							mddev->sync_speed_min = mddev->sync_speed_max = 0;
 | 
				
			||||||
		mddev->recovery = 0;
 | 
							mddev->recovery = 0;
 | 
				
			||||||
		mddev->in_sync = 0;
 | 
							mddev->in_sync = 0;
 | 
				
			||||||
		mddev->changed = 0;
 | 
					 | 
				
			||||||
		mddev->degraded = 0;
 | 
							mddev->degraded = 0;
 | 
				
			||||||
		mddev->barriers_work = 0;
 | 
							mddev->barriers_work = 0;
 | 
				
			||||||
		mddev->safemode = 0;
 | 
							mddev->safemode = 0;
 | 
				
			||||||
| 
						 | 
					@ -5850,7 +5848,6 @@ static int md_open(struct block_device *bdev, fmode_t mode)
 | 
				
			||||||
	atomic_inc(&mddev->openers);
 | 
						atomic_inc(&mddev->openers);
 | 
				
			||||||
	mutex_unlock(&mddev->open_mutex);
 | 
						mutex_unlock(&mddev->open_mutex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	check_disk_change(bdev);
 | 
					 | 
				
			||||||
 out:
 | 
					 out:
 | 
				
			||||||
	return err;
 | 
						return err;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -5865,21 +5862,6 @@ static int md_release(struct gendisk *disk, fmode_t mode)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
static int md_media_changed(struct gendisk *disk)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	mddev_t *mddev = disk->private_data;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return mddev->changed;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static int md_revalidate(struct gendisk *disk)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	mddev_t *mddev = disk->private_data;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	mddev->changed = 0;
 | 
					 | 
				
			||||||
	return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
static const struct block_device_operations md_fops =
 | 
					static const struct block_device_operations md_fops =
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	.owner		= THIS_MODULE,
 | 
						.owner		= THIS_MODULE,
 | 
				
			||||||
| 
						 | 
					@ -5890,8 +5872,6 @@ static const struct block_device_operations md_fops =
 | 
				
			||||||
	.compat_ioctl	= md_compat_ioctl,
 | 
						.compat_ioctl	= md_compat_ioctl,
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	.getgeo		= md_getgeo,
 | 
						.getgeo		= md_getgeo,
 | 
				
			||||||
	.media_changed	= md_media_changed,
 | 
					 | 
				
			||||||
	.revalidate_disk= md_revalidate,
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int md_thread(void * arg)
 | 
					static int md_thread(void * arg)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -237,7 +237,6 @@ struct mddev_s
 | 
				
			||||||
	atomic_t			active;		/* general refcount */
 | 
						atomic_t			active;		/* general refcount */
 | 
				
			||||||
	atomic_t			openers;	/* number of active opens */
 | 
						atomic_t			openers;	/* number of active opens */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	int				changed;	/* true if we might need to reread partition info */
 | 
					 | 
				
			||||||
	int				degraded;	/* whether md should consider
 | 
						int				degraded;	/* whether md should consider
 | 
				
			||||||
							 * adding a spare
 | 
												 * adding a spare
 | 
				
			||||||
							 */
 | 
												 */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2184,7 +2184,6 @@ static int raid1_resize(mddev_t *mddev, sector_t sectors)
 | 
				
			||||||
	if (mddev->array_sectors > raid1_size(mddev, sectors, 0))
 | 
						if (mddev->array_sectors > raid1_size(mddev, sectors, 0))
 | 
				
			||||||
		return -EINVAL;
 | 
							return -EINVAL;
 | 
				
			||||||
	set_capacity(mddev->gendisk, mddev->array_sectors);
 | 
						set_capacity(mddev->gendisk, mddev->array_sectors);
 | 
				
			||||||
	mddev->changed = 1;
 | 
					 | 
				
			||||||
	revalidate_disk(mddev->gendisk);
 | 
						revalidate_disk(mddev->gendisk);
 | 
				
			||||||
	if (sectors > mddev->dev_sectors &&
 | 
						if (sectors > mddev->dev_sectors &&
 | 
				
			||||||
	    mddev->recovery_cp == MaxSector) {
 | 
						    mddev->recovery_cp == MaxSector) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5335,7 +5335,6 @@ static int raid5_resize(mddev_t *mddev, sector_t sectors)
 | 
				
			||||||
	    raid5_size(mddev, sectors, mddev->raid_disks))
 | 
						    raid5_size(mddev, sectors, mddev->raid_disks))
 | 
				
			||||||
		return -EINVAL;
 | 
							return -EINVAL;
 | 
				
			||||||
	set_capacity(mddev->gendisk, mddev->array_sectors);
 | 
						set_capacity(mddev->gendisk, mddev->array_sectors);
 | 
				
			||||||
	mddev->changed = 1;
 | 
					 | 
				
			||||||
	revalidate_disk(mddev->gendisk);
 | 
						revalidate_disk(mddev->gendisk);
 | 
				
			||||||
	if (sectors > mddev->dev_sectors && mddev->recovery_cp == MaxSector) {
 | 
						if (sectors > mddev->dev_sectors && mddev->recovery_cp == MaxSector) {
 | 
				
			||||||
		mddev->recovery_cp = mddev->dev_sectors;
 | 
							mddev->recovery_cp = mddev->dev_sectors;
 | 
				
			||||||
| 
						 | 
					@ -5549,7 +5548,6 @@ static void raid5_finish_reshape(mddev_t *mddev)
 | 
				
			||||||
		if (mddev->delta_disks > 0) {
 | 
							if (mddev->delta_disks > 0) {
 | 
				
			||||||
			md_set_array_sectors(mddev, raid5_size(mddev, 0, 0));
 | 
								md_set_array_sectors(mddev, raid5_size(mddev, 0, 0));
 | 
				
			||||||
			set_capacity(mddev->gendisk, mddev->array_sectors);
 | 
								set_capacity(mddev->gendisk, mddev->array_sectors);
 | 
				
			||||||
			mddev->changed = 1;
 | 
					 | 
				
			||||||
			revalidate_disk(mddev->gendisk);
 | 
								revalidate_disk(mddev->gendisk);
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			int d;
 | 
								int d;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue