Am 03.06.2016 um 10:49 hat Fam Zheng geschrieben:
> This takes care of both the CLOEXEC flag and fd-path mapping for image
> locking.
>
> Signed-off-by: Fam Zheng <[email protected]>
> ---
> include/qemu/osdep.h | 3 +++
> util/osdep.c | 9 +++++++++
> 2 files changed, 12 insertions(+)
>
> diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
> index 749214a..89c63c7 100644
> --- a/include/qemu/osdep.h
> +++ b/include/qemu/osdep.h
> @@ -281,6 +281,9 @@ int qemu_madvise(void *addr, size_t len, int advice);
> int qemu_open(const char *name, int flags, ...);
> int qemu_close(int fd);
> int qemu_lock_fd(int fd, int64_t start, int64_t len, bool exclusive);
> +#ifndef _WIN32
> +int qemu_dup(int fd);
> +#endif
> int qemu_unlock_fd(int fd, int64_t start, int64_t len);
>
> #if defined(__HAIKU__) && defined(__i386__)
> diff --git a/util/osdep.c b/util/osdep.c
> index 085ed52..1c87c1e 100644
> --- a/util/osdep.c
> +++ b/util/osdep.c
> @@ -133,6 +133,15 @@ fail:
> return -1;
> }
>
> +int qemu_dup(int fd)
> +{
> + int r = qemu_dup_flags(fd, 0);
This clears all file status flags that might be set. I don't think we
use any of them (on Linux at least, raw-posix still seems to use it for
platform without O_DIRECT), but isn't this still surprising?
> + if (r == -1) {
> + return -errno;
> + }
> + return r;
> +}
Kevin