[dm-devel] [PATCH 4/8] dm mpath: remove process_queued_ios()
Junichi Nomura
j-nomura at ce.jp.nec.com
Fri Feb 28 09:05:49 UTC 2014
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.
--
Jun'ichi Nomura, NEC Corporation
More information about the dm-devel
mailing list