diff options
| -rw-r--r-- | arch/um/include/shared/os.h | 1 | ||||
| -rw-r--r-- | arch/um/kernel/physmem.c | 1 | ||||
| -rw-r--r-- | arch/um/os-Linux/file.c | 6 |
3 files changed, 8 insertions, 0 deletions
diff --git a/arch/um/include/shared/os.h b/arch/um/include/shared/os.h index 75298d3358e7..08eec0b691b0 100644 --- a/arch/um/include/shared/os.h +++ b/arch/um/include/shared/os.h | |||
| @@ -136,6 +136,7 @@ extern int os_ioctl_generic(int fd, unsigned int cmd, unsigned long arg); | |||
| 136 | extern int os_get_ifname(int fd, char *namebuf); | 136 | extern int os_get_ifname(int fd, char *namebuf); |
| 137 | extern int os_set_slip(int fd); | 137 | extern int os_set_slip(int fd); |
| 138 | extern int os_mode_fd(int fd, int mode); | 138 | extern int os_mode_fd(int fd, int mode); |
| 139 | extern int os_fsync_file(int fd); | ||
| 139 | 140 | ||
| 140 | extern int os_seek_file(int fd, unsigned long long offset); | 141 | extern int os_seek_file(int fd, unsigned long long offset); |
| 141 | extern int os_open_file(const char *file, struct openflags flags, int mode); | 142 | extern int os_open_file(const char *file, struct openflags flags, int mode); |
diff --git a/arch/um/kernel/physmem.c b/arch/um/kernel/physmem.c index f116db15d402..30fdd5d0067b 100644 --- a/arch/um/kernel/physmem.c +++ b/arch/um/kernel/physmem.c | |||
| @@ -103,6 +103,7 @@ void __init setup_physmem(unsigned long start, unsigned long reserve_end, | |||
| 103 | */ | 103 | */ |
| 104 | os_seek_file(physmem_fd, __pa(&__syscall_stub_start)); | 104 | os_seek_file(physmem_fd, __pa(&__syscall_stub_start)); |
| 105 | os_write_file(physmem_fd, &__syscall_stub_start, PAGE_SIZE); | 105 | os_write_file(physmem_fd, &__syscall_stub_start, PAGE_SIZE); |
| 106 | os_fsync_file(physmem_fd); | ||
| 106 | 107 | ||
| 107 | bootmap_size = init_bootmem(pfn, pfn + delta); | 108 | bootmap_size = init_bootmem(pfn, pfn + delta); |
| 108 | free_bootmem(__pa(reserve_end) + bootmap_size, | 109 | free_bootmem(__pa(reserve_end) + bootmap_size, |
diff --git a/arch/um/os-Linux/file.c b/arch/um/os-Linux/file.c index 07a750197bb0..08d90fba952c 100644 --- a/arch/um/os-Linux/file.c +++ b/arch/um/os-Linux/file.c | |||
| @@ -237,6 +237,12 @@ void os_close_file(int fd) | |||
| 237 | { | 237 | { |
| 238 | close(fd); | 238 | close(fd); |
| 239 | } | 239 | } |
| 240 | int os_fsync_file(int fd) | ||
| 241 | { | ||
| 242 | if (fsync(fd) < 0) | ||
| 243 | return -errno; | ||
| 244 | return 0; | ||
| 245 | } | ||
| 240 | 246 | ||
| 241 | int os_seek_file(int fd, unsigned long long offset) | 247 | int os_seek_file(int fd, unsigned long long offset) |
| 242 | { | 248 | { |
