forked from mirrors/linux
		
	md: export md_is_rdwr() and is_md_suspended()
The two apis will be used later to fix a deadlock in raid456, there are no functional changes. Signed-off-by: Yu Kuai <yukuai3@huawei.com> Signed-off-by: Song Liu <song@kernel.org> Link: https://lore.kernel.org/r/20230512015610.821290-4-yukuai1@huaweicloud.com
This commit is contained in:
		
							parent
							
								
									873f50ece4
								
							
						
					
					
						commit
						431e61257d
					
				
					 2 changed files with 17 additions and 16 deletions
				
			
		| 
						 | 
				
			
			@ -93,18 +93,6 @@ static int remove_and_add_spares(struct mddev *mddev,
 | 
			
		|||
				 struct md_rdev *this);
 | 
			
		||||
static void mddev_detach(struct mddev *mddev);
 | 
			
		||||
 | 
			
		||||
enum md_ro_state {
 | 
			
		||||
	MD_RDWR,
 | 
			
		||||
	MD_RDONLY,
 | 
			
		||||
	MD_AUTO_READ,
 | 
			
		||||
	MD_MAX_STATE
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static bool md_is_rdwr(struct mddev *mddev)
 | 
			
		||||
{
 | 
			
		||||
	return (mddev->ro == MD_RDWR);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Default number of read corrections we'll attempt on an rdev
 | 
			
		||||
 * before ejecting it from the array. We divide the read error
 | 
			
		||||
| 
						 | 
				
			
			@ -360,10 +348,6 @@ EXPORT_SYMBOL_GPL(md_new_event);
 | 
			
		|||
static LIST_HEAD(all_mddevs);
 | 
			
		||||
static DEFINE_SPINLOCK(all_mddevs_lock);
 | 
			
		||||
 | 
			
		||||
static bool is_md_suspended(struct mddev *mddev)
 | 
			
		||||
{
 | 
			
		||||
	return percpu_ref_is_dying(&mddev->active_io);
 | 
			
		||||
}
 | 
			
		||||
/* Rather than calling directly into the personality make_request function,
 | 
			
		||||
 * IO requests come here first so that we can check if the device is
 | 
			
		||||
 * being suspended pending a reconfiguration.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -555,6 +555,23 @@ enum recovery_flags {
 | 
			
		|||
	MD_RESYNCING_REMOTE,	/* remote node is running resync thread */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum md_ro_state {
 | 
			
		||||
	MD_RDWR,
 | 
			
		||||
	MD_RDONLY,
 | 
			
		||||
	MD_AUTO_READ,
 | 
			
		||||
	MD_MAX_STATE
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static inline bool md_is_rdwr(struct mddev *mddev)
 | 
			
		||||
{
 | 
			
		||||
	return (mddev->ro == MD_RDWR);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline bool is_md_suspended(struct mddev *mddev)
 | 
			
		||||
{
 | 
			
		||||
	return percpu_ref_is_dying(&mddev->active_io);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline int __must_check mddev_lock(struct mddev *mddev)
 | 
			
		||||
{
 | 
			
		||||
	return mutex_lock_interruptible(&mddev->reconfig_mutex);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue