This patch is more complete than the one I sent a few minutes ago. sorry for the oversight. diff -ur linux-2.6.7-rc2-udm2-original/drivers/md/dm-io.c linux-2.6.7-rc2-udm2-patched/drivers/md/dm-io.c --- linux-2.6.7-rc2-udm2-original/drivers/md/dm-io.c 2004-06-07 14:21:57.000000000 -0700 +++ linux-2.6.7-rc2-udm2-patched/drivers/md/dm-io.c 2004-06-10 14:57:13.000000000 -0700 @@ -548,16 +548,13 @@ while (1) { set_current_state(TASK_UNINTERRUPTIBLE); - if (!atomic_read(&io.count) || signal_pending(current)) + if (!atomic_read(&io.count)) break; io_schedule(); } set_current_state(TASK_RUNNING); - if (atomic_read(&io.count)) - return -EINTR; - *error_bits = io.error; return io.error ? -EIO : 0; }