On 02/28/2014 10:05 AM, Junichi Nomura wrote: > On 02/27/14 16:30, Hannes Reinecke wrote: >> @@ -1214,9 +1189,11 @@ static void pg_init_done(void *data, int errors) >> >> if (!m->pg_init_required) >> m->queue_io = 0; >> - >> - m->pg_init_delay_retry = delay_retry; >> - queue_work(kmultipathd, &m->process_queued_ios); >> + else if (m->current_pg) { >> + m->pg_init_delay_retry = delay_retry; >> + if (__pg_init_all_paths(m)) >> + goto out; >> + } > > As I commented before: > https://www.redhat.com/archives/dm-devel/2014-February/msg00013.html > > I think the code here should clear queue_io like this > when retry was requested but wasn't done: > > if (m->pg_init_required) { > m->pg_init_delay_retry = delay_retry; > if (__pg_init_all_paths(m)) > goto out; > } > m->queue_io = 0; > > Otherwise, if __pg_init_all_paths() returns 0, m->queue_io will remain > as "1" and nobody will clear it. > You are right. Will be fixing it up. Thanks for the review. Cheers, Hannes -- Dr. Hannes Reinecke zSeries & Storage hare@xxxxxxx +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg) -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel