On Thu, 2018-11-29 at 14:53 -0600, Benjamin Marzinski wrote: > On Wed, Nov 21, 2018 at 11:18:36AM +0100, Martin Wilck wrote: > > When there are paths with the same WWID but different sizes, and > > coalesce_paths() walks the pathvec, it checks paths _after_ > > the current one for size mismatch and sets ACT_REJECT. However, > > these paths will be reached in the main loop later, and this time > > the already handled paths will not be checked for size mismatch; > > thus a map could be created, possibly even with mismatching > > devices. > > > > Fix that by tracking which paths were already discarded, and > > skipping them in the main loop later. > > Previously, multipath would retry if coalesce_paths returned > DOMAP_RETRY. With this patch, DOMAP_RETRY isn't returned, so that no > longer happens. Is this intentional? No, it was an oversight. Thanks for spotting it. Note: it's only relevant for the case where lock_multipath() fails, which should hardly ever happen any more since we are using shared locks (5ec07b3). Whether we still need lock_multipath() is an open question. I personally think we don't. > > Also, I would prefer if coalesce_paths always used named constants > for > the return values, instead of converting them to numbers. OK, I'll send an extra patch for that. Martin -- Dr. Martin Wilck <mwilck@xxxxxxxx>, Tel. +49 (0)911 74053 2107 SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel