mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
raid: reread status when 0 is reported
When kernel target reports sync status as 0% it might as well mean it's 100% in sync, just the target is in some race inconsistent state - so reread once again and take a more optimistic value ;) Patch tries to work around: https://bugzilla.redhat.com/show_bug.cgi?id=1210637
This commit is contained in:
parent
2d10a6f6ae
commit
88421c883e
@ -93,6 +93,20 @@ static int _raid_in_sync(struct logical_volume *lv)
|
|||||||
lv->vg->name, lv->name);
|
lv->vg->name, lv->name);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
if (sync_percent == DM_PERCENT_0) {
|
||||||
|
/*
|
||||||
|
* Repeat read of status once more - since buggy kernel target
|
||||||
|
* sometimes reports 0 even though the array is in 100% sync
|
||||||
|
*/
|
||||||
|
if (!lv_raid_percent(lv, &sync_percent)) {
|
||||||
|
log_error("Unable to determine sync status of %s/%s.",
|
||||||
|
lv->vg->name, lv->name);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (sync_percent == DM_PERCENT_100)
|
||||||
|
log_warn("WARNING: Sync status for %s is inconsistent.",
|
||||||
|
display_lvname(lv));
|
||||||
|
}
|
||||||
|
|
||||||
return (sync_percent == DM_PERCENT_100) ? 1 : 0;
|
return (sync_percent == DM_PERCENT_100) ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user