If dm_add_wait_queue() fails we need to set TASK_RUNNING. --- diff/drivers/md/dm-ioctl-v4.c 2003-07-02 11:32:42.000000000 +0100 +++ source/drivers/md/dm-ioctl-v4.c 2003-07-02 11:32:23.000000000 +0100 @@ -719,6 +719,7 @@ schedule(); dm_remove_wait_queue(md, &wq); } + set_current_state(TASK_RUNNING); /* * The userland program is going to want to know what