On 02/04/14 19:54, Hannes Reinecke wrote: > We only need to take care to add a small delay when calling > __pg_init_all_paths() to move processing off to a workqueue; otherwise > pg_init_done() might end up calling scsi_dh_activate() directly, which > might use non-atomic memory allocations or issue I/O. Hi Hannes, could you tell me how "might end up calling scsi_dh_active()" happens? queue_delayed_work() queue_delayed_work_on() __queue_delayed_work() if (!delay) __queue_work() get_work_pool() insert_work() set_work_pwq() get_pwq() if (__need_more_worker()) wake_up_worker() queue_work() doesn't execute the work itself. What am I missing? -- Jun'ichi Nomura, NEC Corporation -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel