Hello Neil, Jes, I wonder if the following deadlock is possible: - Caller calls blk_start_plug and wants to submit two WRITE bios - First bio successfully calls wait_barrier() and is appended to plug->pending list - Now somebody does freeze_array() - freeze_array() unconditionally sets: conf->array_frozen = 1; and starts waiting for conf->nr_pending to go down - Second WRITE bio calls wait_barrier, but it will wait for "!conf->array_frozen" until it can proceed - Now we have a deadlock: first bio will not be submitted because it sits on the plug list of the caller, and caller is stuck in wait_barrier, so it cannot do blk_finish_plug. I am about to try to reproduce it on kernel 3.18, but looking at the latest Linus tree, I don't see something preventing this from happening either. Am I missing something? Thanks, Alex. -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html