mirror of
				git://sourceware.org/git/lvm2.git
				synced 2025-11-03 08:23:48 +03:00 
			
		
		
		
	raid: recognize transient failed raid leg
When raid leg rimage device is marked as 'D'ead by mdcore, lvm2 was not able to replace such device with allocate policy, as device has not appared as missing. Add detection of transiently failing devices.
This commit is contained in:
		@@ -1,5 +1,6 @@
 | 
			
		||||
Version 2.02.172 - 
 | 
			
		||||
===============================
 | 
			
		||||
  Lvconvert --repair handles failing raid legs (present but marked 'D'ead).
 | 
			
		||||
  Do not lvdisplay --maps unset settings of cache pool.
 | 
			
		||||
  Fix lvdisplay --maps for cache pool without policy settings.
 | 
			
		||||
  Support aborting of flushing cache LV.
 | 
			
		||||
 
 | 
			
		||||
@@ -6653,6 +6653,8 @@ static int _lv_raid_rebuild_or_replace(struct logical_volume *lv,
 | 
			
		||||
 | 
			
		||||
		if (lv_is_virtual(seg_lv(raid_seg, s)) ||
 | 
			
		||||
		    lv_is_virtual(seg_metalv(raid_seg, s)) ||
 | 
			
		||||
		    lv_is_partial(seg_lv(raid_seg, s)) ||
 | 
			
		||||
		    lv_is_partial(seg_metalv(raid_seg, s)) ||
 | 
			
		||||
		    lv_is_on_pvs(seg_lv(raid_seg, s), remove_pvs) ||
 | 
			
		||||
		    lv_is_on_pvs(seg_metalv(raid_seg, s), remove_pvs)) {
 | 
			
		||||
			match_count++;
 | 
			
		||||
 
 | 
			
		||||
@@ -3319,6 +3319,8 @@ static int _lvconvert_repair_pvs_raid(struct cmd_context *cmd, struct logical_vo
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	lv_check_transient(lv); /* TODO check this in lib for all commands? */
 | 
			
		||||
 | 
			
		||||
	_lvconvert_repair_pvs_raid_ask(cmd, &do_it);
 | 
			
		||||
 | 
			
		||||
	if (do_it) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user