On Friday 27 February 2004 12:58 pm, Mike Christie wrote: > Joe Thornber wrote: > > http://people.sistina.com/~thornber/dm/patches/2.6-unstable/2.6.3/2.6.3-u > >dm4.tar.bz2 > > > > Note the mpath contructor args have changed again (no priority). > > I have been trying the latest dm-mpath patches, but when I fail a path > (pull a cord or disable a port) dm-mpath oops on queue_work for the > trigger_event work (if I do a addr2line it says it is in > __atomic_dec_and_test). The strange thing is if I just comment the > queue_work line out, in fail_path() it will hit a BUG() in the spin lock > code that tests the lock magic. I will post the oops when I get the > output from serial line, but has anyone had success with failover in the > current dm-mpath? This actually has occured for this release and udm3 w/ > Joe's bio record patches. Yep, I just hit that as well. Looks to me like the path->pg->m pointer got munged. Actually...it looks like the m pointer never got initialized in the priority group. Yep....patch 11 from -udm4 removed __insert_priority_group(), which is where that pointer got initialized. Here's one possible patch which should fix it. -- Kevin Corry kevcorry@xxxxxxxxxx http://evms.sourceforge.net/ Need to set the "m" pointer in the priority-group. This was accidentally removed when __insert_priority_group() was removed. --- diff/drivers/md/dm-mpath.c 2004-02-27 15:38:32.000000000 -0600 +++ source/drivers/md/dm-mpath.c 2004-02-27 15:38:14.000000000 -0600 @@ -393,6 +393,7 @@ ti->error = ESTR("couldn't allocate priority group"); return NULL; } + pg->m = m; pst = dm_get_path_selector(shift(as)); if (!pst) {