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;
 }
