On Wed, 2006-11-15 at 23:33 +0100, Christophe Varoqui wrote: > Le mercredi 15 novembre 2006 à 14:48 -0500, Edward Goggin a écrit : > > On Wednesday, November 15, 2006 1:49 AM, Dave Wysochanski wrote > > > > > One other thought I had was the notion of a "priority valid" > > > flag (or a > > > special priority value) in the path for the case of > > > group_by_prio. Set > > > it to invalid in alloc_path(), then just don't add the path to the > > > multipath struct in coalesce_paths() if the priority value > > > was invalid. > > > Then over in checkerloop(), add the path to the multipath map when you > > > get a valid priority. > > > > > > It is more complicated than that I'm sure (e.g. checkerloop() assumes > > > pp->mpp is non-null in places, etc) but seemed like a half-decent > > > approach to at least consider. > > > > > > This approach doesn't take into consideration the general case of a > > > change in path priority though. > > > > I very much like the first part of your "priority valid" idea > > mentioned above. > > > > I've enclosed a patch for the first part of your idea. The patch > > should address the concern you had about recalculating priority > > for a path when its path state changes from not PATH_DOWN to > > PATH_DOWN. It now only retrieves the priority for PATH_DOWN > > paths if the path's priority has never been successfully > > retrieved before. > > > How about the following, clarifying PRIO values and avoiding the > additional "struct path" element ? > > Please have a careful look at the multipath/main.c:update_paths change, > because the (!pp->priority) that was there awfully looks like a bug (as > 0 is not a defined prio value). > 0 is the value you'll get though after alloc_path and before anyone calls pathinfo right? Your patch should be equivalent though and is clearer. > Regards, > cvaroqui > > -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel