filemap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- mm/filemap.c.orig 2009-04-07 12:06:30.000000000 -0400 +++ mm/filemap.c 2009-04-07 12:06:49.000000000 -0400 @@ -2420,7 +2420,8 @@ if (ret > 0 && ((file->f_flags & O_SYNC) || IS_SYNC(inode))) { ssize_t err; - err = sync_page_range_nolock(inode, mapping, pos, ret); + err = sync_page_range_nolock(inode, mapping, iocb->ki_pos - ret, + ret); if (err < 0) ret = err; }