mm/filemap.c | 6 +++--- mm/page-writeback.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff -puN mm/filemap.c~O_SYNC-speedup-2-f_mapping-fixes mm/filemap.c --- 25/mm/filemap.c~O_SYNC-speedup-2-f_mapping-fixes 2004-01-05 18:58:07.000000000 -0800 +++ 25-akpm/mm/filemap.c 2004-01-05 18:58:07.000000000 -0800 @@ -2206,7 +2206,8 @@ EXPORT_SYMBOL(generic_file_readv); ssize_t generic_file_writev(struct file *file, const struct iovec *iov, unsigned long nr_segs, loff_t *ppos) { - struct inode *inode = file->f_mapping->host; + struct address_space *mapping = file->f_mapping; + struct inode *inode = mapping->host; ssize_t ret; down(&inode->i_sem); @@ -2216,8 +2217,7 @@ ssize_t generic_file_writev(struct file if (ret > 0 && ((file->f_flags & O_SYNC) || IS_SYNC(inode))) { int err; - err = sync_page_range(inode, inode->i_mapping, - *ppos - ret, ret); + err = sync_page_range(inode, mapping, *ppos - ret, ret); if (err < 0) ret = err; } diff -puN mm/page-writeback.c~O_SYNC-speedup-2-f_mapping-fixes mm/page-writeback.c --- 25/mm/page-writeback.c~O_SYNC-speedup-2-f_mapping-fixes 2004-01-05 18:58:07.000000000 -0800 +++ 25-akpm/mm/page-writeback.c 2004-01-05 18:58:07.000000000 -0800 @@ -723,7 +723,7 @@ int sync_page_range(struct inode *inode, ret = write_out_page_range(mapping, pos, count); if (ret == 0) { down(&inode->i_sem); - ret = generic_osync_inode(inode, OSYNC_METADATA); + ret = generic_osync_inode(inode, mapping, OSYNC_METADATA); up(&inode->i_sem); } if (ret == 0) _