um: Use fdatasync() when mapping the UBD FSYNC command
authorAnton Ivanov <anton.ivanov@cambridgegreys.com>
Wed, 22 Apr 2020 16:00:01 +0000 (17:00 +0100)
committerRichard Weinberger <richard@nod.at>
Tue, 2 Jun 2020 20:37:55 +0000 (22:37 +0200)
We do not need to update the metadata (atime, mtime, etc)
on the UBD file and/or the COW file until UML exits.

UBD image mtime is checked in UML only when opening
the files. After that they are locked and used
exclusively by a single UML instance, so there is
no point wasting resources on updating metadata on
every sync. We can sync data only. The host will
always update mtime if a file has been modified upon
closing it.

Signed-off-by: Anton Ivanov <anton.ivanov@cambridgegreys.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
arch/um/os-Linux/file.c

index 044836a..e4421db 100644 (file)
@@ -290,7 +290,7 @@ int os_write_file(int fd, const void *buf, int len)
 
 int os_sync_file(int fd)
 {
-       int n = fsync(fd);
+       int n = fdatasync(fd);
 
        if (n < 0)
                return -errno;