1
0
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:
Zdenek Kabelac 2015-05-04 11:25:00 +02:00
parent 2d10a6f6ae
commit 88421c883e

View File

@ -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;
} }