[dm-devel] [PATCH] dm-mpath: requeue I/O during pg_init
Alasdair G Kergon
agk at redhat.com
Tue Nov 5 13:02:21 UTC 2013
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
More information about the dm-devel
mailing list