dm-io.c: Handle signals in during synchronous io. --- diff/drivers/md/dm-io.c 2004-02-23 14:06:37.000000000 +0000 +++ source/drivers/md/dm-io.c 2004-02-27 11:10:41.000000000 +0000 @@ -512,16 +512,18 @@ int sync_io(unsigned int num_regions, st blk_run_queues(); while (1) { - /* FIXME: handle signals */ set_current_state(TASK_UNINTERRUPTIBLE); - if (!atomic_read(&io.count)) + if (!atomic_read(&io.count) || signal_pending(current)) break; - schedule(); + io_schedule(); } set_current_state(TASK_RUNNING); + if (atomic_read(&io.count)) + return -EINTR; + *error_bits = io.error; return io.error ? -EIO : 0; }