From 8f2e9f157a94f444dad974b088b853ac40785b02 Mon Sep 17 00:00:00 2001
From: Andrew Morton <akpm@osdl.org>
Date: Fri, 24 Mar 2006 03:18:15 -0800
Subject: [PATCH] [PATCH] msync(): use do_fsync()

No need to duplicate all that code.

Cc: Hugh Dickins <hugh@veritas.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
---
 mm/msync.c | 17 ++---------------
 1 file changed, 2 insertions(+), 15 deletions(-)

diff --git a/mm/msync.c b/mm/msync.c
index d6a50f3f28b69..2672b8dc3d894 100644
--- a/mm/msync.c
+++ b/mm/msync.c
@@ -9,6 +9,7 @@
  */
 #include <linux/slab.h>
 #include <linux/pagemap.h>
+#include <linux/fs.h>
 #include <linux/mm.h>
 #include <linux/mman.h>
 #include <linux/hugetlb.h>
@@ -214,23 +215,9 @@ asmlinkage long sys_msync(unsigned long start, size_t len, int flags)
 			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(&current->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(&current->mm->mmap_sem);
 			if (error)
-- 
GitLab