]> git.proxmox.com Git - mirror_qemu.git/commit
linux-user: Use direct syscall for utimensat
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 18 Jul 2016 10:47:55 +0000 (11:47 +0100)
committerRiku Voipio <riku.voipio@linaro.org>
Wed, 21 Sep 2016 11:25:10 +0000 (14:25 +0300)
commit700fa58e4b9100d6bd77df06d2e5d1f457720c4d
treed612af7604ee39ca3bc2d701d4485d90bb29dd7c
parent6080723102d1ad3b553769834d6a23e3f3d8250f
linux-user: Use direct syscall for utimensat

The linux utimensat syscall differs in semantics from the
libc function because the syscall combines the features
of utimensat() and futimens(). Rather than trying to
split these apart in order to call the two libc functions
which then call the same underlying syscall, just always
directly make the host syscall. This fixes bugs in some
of the corner cases which should return errors from the
syscall but which we were incorrectly directing to futimens().

This doesn't reduce the set of hosts that our syscall
implementation will work on, because if the direct syscall
fails ENOSYS then the libc functions would also fail ENOSYS.
(The system call has been in the kernel since 2.6.22 anyway.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
linux-user/syscall.c