On 02/28/14 23:33, Hannes Reinecke wrote: > @@ -1214,9 +1189,12 @@ 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; > + m->queue_io = 0; > + } Hi Hannes, If m->pg_init_required && !m->current_pg, doesn't m->queue_io remain 1 while nobody kicks pg_init? That's why I suggested this: if (m->pg_init_required) { m->pg_init_delay_retry = delay_retry; if (__pg_init_all_paths(m)) goto out; } m->queue_io = 0; -- Jun'ichi Nomura, NEC Corporation -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel