When running on iSCSI the connection might suffer intermediate
errors, causing the path to fail. But by the time the path checker
runs these errors will be cleared by the iSCSI internal connection
recovery, which means the daemon will never see any error and not
reinstated any failed paths.
References: bnc#447887
Signed-off-by: Hannes Reinecke <hare@suse.de>
pp->tick = 1;
return;
}
+ /*
+ * Synchronize with kernel state
+ */
+ if (update_multipath_strings(pp->mpp, vecs->pathvec)) {
+ condlog(1, "%s: Could not synchronize with kernel state\n",
+ pp->dev);
+ pp->dmstate = PSTATE_UNDEF;
+ }
if (newstate != pp->state) {
int oldstate = pp->state;
pp->state = newstate;
*/
pp->checkint = conf->checkint;
- if (newstate == PATH_DOWN || newstate == PATH_SHAKY ||
- update_multipath_strings(pp->mpp, vecs->pathvec)) {
+ if (newstate == PATH_DOWN || newstate == PATH_SHAKY) {
/*
* proactively fail path in the DM
*/