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,