ovl: fsync after copy-up
authorMiklos Szeredi <mszeredi@redhat.com>
Mon, 31 Oct 2016 13:42:14 +0000 (14:42 +0100)
committerSasha Levin <alexander.levin@verizon.com>
Sat, 26 Nov 2016 03:57:03 +0000 (22:57 -0500)
[ Upstream commit 641089c1549d8d3df0b047b5de7e9a111362cdce ]

Make sure the copied up file hits the disk before renaming to the final
destination.  If this is not done then the copy-up may corrupt the data in
the file in case of a crash.

Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
fs/overlayfs/copy_up.c

index 4d8aa749d9b222755e28b1ded300b68a3b7d4f80..c57cd417802be337c78b0f00aae536637f3189b6 100644 (file)
@@ -129,6 +129,8 @@ static int ovl_copy_up_data(struct path *old, struct path *new, loff_t len)
                len -= bytes;
        }
 
+       if (!error)
+               error = vfs_fsync(new_file, 0);
        fput(new_file);
 out_fput:
        fput(old_file);