On Thu, Jul 21, 2016 at 09:29:37AM -0700, Bart Van Assche wrote: > On 07/01/2016 02:46 PM, Benjamin Marzinski wrote: > >multipathd has code to finish gathering the information of paths that > >were not active at the time they were discovered. When the checker loop > >goes to check a path, and notices that it wasn't fully initialized, it > >is supposed to complete the initialization. However the code is broken. > >This means that if you reconfigure multipathd while paths are down, they > >will no longer be usable. This patch makes sure that check_path will > >actually rerun pathinfo to finish setting up the path, so that after the > >path comes back up, it will be usable again. > >[ ... ] > >@@ -1779,7 +1785,13 @@ checkerloop (void *ap) > > lock(vecs->lock); > > pthread_testcancel(); > > vector_foreach_slot (vecs->pathvec, pp, i) { > >- num_paths += check_path(vecs, pp, ticks); > >+ rc = check_path(vecs, pp, ticks); > >+ if (rc < 0) { > >+ vector_del_slot(vecs->pathvec, i); > >+ free_path(pp); > >+ i--; > >+ } else; > >+ num_paths += rc; > > } > > lock_cleanup_pop(vecs->lock); > > } > > Hi Ben, > > Was the semicolon after the "else" intended or was it a typo? Oops! That was a typo. I'll send off a quick patch. Thanks for catching that. -Ben > > Thanks, > > Bart. -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel