Chandra Seetharaman wrote: > Resending the patch after fixing the header, Porting and testing in > 2.6.30-rc3, and a bug fix. > --------------- > There is a problem which was caused due to the architectural change made > when we moved from dm hardware handler to SCSI hardware handler. > > In dm, handler was called to do a pg_init for a path group, and there > was no state maintained in hardware handler code for each path. > > In SCSI dh, "state" is maintanined per path, as we wanted to fail I/O > early on that path if it is not the active path. > > All of the hardware handlers, do have a state now, and they are set to > active and (some form of) inactive. All of them have prep_fn(), which use > this "state" to fail the I/O without it ever being sent to the device. > > So, in effect when dm-multipath calls scsi_dh_activate(), activate is > sent to only one path and the "state" of that path is changed appropriately > to "active" while other paths in the same path group are never changed > as they never got an "activate". > > In order make sure all the paths in a path group gets their state set > properly when a pg_init happens, we need to call scsi_dh_activate() on > all paths in a path group. > > Doing this at the hardware handler layer is not a good option as we > want the multipath layer to define the relationship between path and path > groups and not the hardware handler. > > Attached patch sends an "activate" on each path in a path group when a > path group is switched. It also sends an activate when a path is reinstated. > > Patch is applied and tested on 2.6.30-rc3. > > ---------- > > Signed-off-by: Chandra Seetharaman <sekharan@xxxxxxxxxx> Acked-by: Hannes Reinecke <hare@xxxxxxx> -- Dr. Hannes Reinecke zSeries & Storage hare@xxxxxxx +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Markus Rex, HRB 16746 (AG Nürnberg) -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel