diff -urpN -X /home/fletch/.diff.exclude 714-fs_aio_4_down_wq/mm/filemap.c 715-fs_aio_5_wrdown_wq/mm/filemap.c
--- 714-fs_aio_4_down_wq/mm/filemap.c	Wed Jun 18 22:00:49 2003
+++ 715-fs_aio_5_wrdown_wq/mm/filemap.c	Wed Jun 18 22:00:51 2003
@@ -1874,7 +1874,8 @@ ssize_t generic_file_aio_write(struct ki
 
 	BUG_ON(iocb->ki_pos != pos);
 
-	down(&inode->i_sem);
+	if ((err = down_wq(&inode->i_sem, current->io_wait)))
+		return err;
 	err = generic_file_aio_write_nolock(iocb, &local_iov, 1, 
 						&iocb->ki_pos);
 	up(&inode->i_sem);