From: Andrew Morton No need to duplicate all that code. Cc: Hugh Dickins Cc: Nick Piggin Signed-off-by: Andrew Morton --- mm/msync.c | 17 ++--------------- 1 files changed, 2 insertions(+), 15 deletions(-) diff -puN mm/msync.c~msync-use-do_fsync mm/msync.c --- devel/mm/msync.c~msync-use-do_fsync 2006-02-11 01:01:49.000000000 -0800 +++ devel-akpm/mm/msync.c 2006-02-11 01:01:49.000000000 -0800 @@ -9,6 +9,7 @@ */ #include #include +#include #include #include #include @@ -214,23 +215,9 @@ asmlinkage long sys_msync(unsigned long vma = find_vma(current->mm, start); } else if ((flags & MS_SYNC) && file && (vma->vm_flags & VM_SHARED)) { - struct address_space *mapping; - int err; - get_file(file); up_read(¤t->mm->mmap_sem); - mapping = file->f_mapping; - error = filemap_fdatawrite(mapping); - if (file->f_op && file->f_op->fsync) { - mutex_lock(&mapping->host->i_mutex); - err = file->f_op->fsync(file,file->f_dentry,1); - mutex_unlock(&mapping->host->i_mutex); - if (err && !error) - error = err; - } - err = filemap_fdatawait(mapping); - if (err && !error) - error = err; + error = do_fsync(file, 0); fput(file); down_read(¤t->mm->mmap_sem); if (error) _