diff -urpN -X /home/fletch/.diff.exclude 720-pae_vmalloc/fs/aio.c 721-fsaio_vs_aio_fix/fs/aio.c
--- 720-pae_vmalloc/fs/aio.c	Fri May  2 07:48:24 2003
+++ 721-fsaio_vs_aio_fix/fs/aio.c	Fri May  2 07:56:45 2003
@@ -592,7 +592,7 @@ static ssize_t aio_run_iocb(struct kiocb
 	}
 
 	if (!(iocb->ki_retried & 0xff)) {
-		printk("%ld retry: %d of %d (kick %ld, Q %ld run %ld, wake %ld)\n",
+		dprintk("%ld retry: %d of %d (kick %ld, Q %ld run %ld, wake %ld)\n",
 			iocb->ki_retried, 
 			iocb->ki_nbytes - iocb->ki_left, iocb->ki_nbytes,
 			iocb->ki_kicked, iocb->ki_queued, aio_run, aio_wakeups);
diff -urpN -X /home/fletch/.diff.exclude 720-pae_vmalloc/fs/block_dev.c 721-fsaio_vs_aio_fix/fs/block_dev.c
--- 720-pae_vmalloc/fs/block_dev.c	Fri May  2 07:47:23 2003
+++ 721-fsaio_vs_aio_fix/fs/block_dev.c	Fri May  2 07:56:45 2003
@@ -703,6 +703,15 @@ static ssize_t blkdev_file_write(struct 
 	return generic_file_write_nolock(file, &local_iov, 1, ppos);
 }
 
+static ssize_t blkdev_file_aio_write(struct kiocb *iocb, const char *buf,
+				   size_t count, loff_t pos)
+{
+	struct iovec local_iov = { .iov_base = (void *)buf, .iov_len = count };
+
+	return generic_file_aio_write_nolock(iocb, &local_iov, 1, &iocb->ki_pos);
+}
+
+
 struct address_space_operations def_blk_aops = {
 	.readpage	= blkdev_readpage,
 	.writepage	= blkdev_writepage,
@@ -719,6 +728,8 @@ struct file_operations def_blk_fops = {
 	.llseek		= block_llseek,
 	.read		= generic_file_read,
 	.write		= blkdev_file_write,
+  	.aio_read	= generic_file_aio_read,
+  	.aio_write	= blkdev_file_aio_write, 
 	.mmap		= generic_file_mmap,
 	.fsync		= block_fsync,
 	.ioctl		= blkdev_ioctl,