Ok, so my first try was kinda sucky becuase the multipath workqueue is shared between all mp devices so it should not sleep. The following patches would allow the path-selector initialization to be asynchronous. They have _not_ been tested. I am just posting them as an RFC to make sure I have an acceptable algorithm. Basically, for incoming IO the map function will simply sleep until the ps has been activated. For failed IO that can not be mapped becuase the ps is initializing the map or end_io function will just place the bio on the on the dispatched_failed list and set things up so that work is not dequeued until the ps has been initialized. 01-ps-args.patch - enables a path-selector to be able to get selector wide arguments - vs path level args. (the interface for the status function still needs work) 02-async-ps-init-RFC.patch implements the alg. descibed above. Not tested, but please comment. 03-dm-ps-rdac-test.patch - implments a basic ps for IBM's fastt. I took the LSI stuff out for now so it does not work. It also needs a end_request_fn callback from the block layer but I will post that to Jens if the async approach is ok. The patches made against 2.6.5-udm5. Comments welcome. Thanks. Mike