On Tue, Oct 01, 2013 at 11:49:56AM +0200, Hannes Reinecke wrote: > --- a/drivers/md/dm-mpath.c > +++ b/drivers/md/dm-mpath.c > @@ -390,7 +390,11 @@ static int map_io(struct multipath *m, struct request *clone, > if (was_queued) > m->queue_size--; > > - if ((pgpath && m->queue_io) || > + if (m->pg_init_required) { > + if (!m->pg_init_in_progress) > + queue_work(kmultipathd, &m->process_queued_ios); > + r = DM_MAPIO_REQUEUE; > + } else if ((pgpath && m->queue_io) || > (!pgpath && m->queue_if_no_path)) { > /* Queue for the daemon to resubmit */ > list_add_tail(&clone->queuelist, &m->queued_ios); This sequence if...else if... is becoming more and more unreadable! - Two cases now return REQUEUE; two cases now queue_work(). If it really can't be simplified, could we at least add some explanatory comments inline? Alasdair -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel