On 11/01/13 02:17, Frank Mayhar wrote: > On Thu, 2013-10-31 at 14:31 +0000, Alasdair G Kergon wrote: >> (And also remember to test table swap/push back.) > > That brings up something I wanted to ask. I've dug through the code and > this particular thing isn't clear to me. So how does it handle the > queued I/Os when switching tables? I see nothing in the table_load() > path that would deal with this. I'm guessing that the requests are > pushed back to the block layer and are later resubmitted and requeued on > the new multipath queue, but I don't see how that works. > > Code references would be very welcome. Relevant piece of codes is: - multipath_presuspend() temporarily disables "queue_if_no_path" - during the suspend process, __must_push_back() catches (otherwise failing) requests and requeues them back to the block layer queue - upon resume, dm starts processing requests in the block layer queue as usual Hope this helps. -- Jun'ichi Nomura, NEC Corporation -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel