On Thu, 31 May 2018 21:26:03 -0400
Keno Fischer <keno@juliacomputing.com> wrote:
> The current file only has the Linux versions of these functions.
> Rename the file accordingly and update the Makefile to only build
> it on Linux. A Darwin version of these will follow later in the
> series.
>
> Signed-off-by: Keno Fischer <keno@juliacomputing.com>
> ---
>
Reviewed-by: Greg Kurz <groug@kaod.org>
> Changes since v1: New patch
>
> hw/9pfs/9p-util-linux.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++
> hw/9pfs/9p-util.c | 59 -------------------------------------------------
> hw/9pfs/Makefile.objs | 3 ++-
> 3 files changed, 61 insertions(+), 60 deletions(-)
> create mode 100644 hw/9pfs/9p-util-linux.c
> delete mode 100644 hw/9pfs/9p-util.c
>
> diff --git a/hw/9pfs/9p-util-linux.c b/hw/9pfs/9p-util-linux.c
> new file mode 100644
> index 0000000..defa3a4
> --- /dev/null
> +++ b/hw/9pfs/9p-util-linux.c
> @@ -0,0 +1,59 @@
> +/*
> + * 9p utilities (Linux Implementation)
> + *
> + * Copyright IBM, Corp. 2017
> + *
> + * Authors:
> + * Greg Kurz <groug@kaod.org>
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2 or later.
> + * See the COPYING file in the top-level directory.
> + */
> +
> +#include "qemu/osdep.h"
> +#include "qemu/xattr.h"
> +#include "9p-util.h"
> +
> +ssize_t fgetxattrat_nofollow(int dirfd, const char *filename, const char *name,
> + void *value, size_t size)
> +{
> + char *proc_path = g_strdup_printf("/proc/self/fd/%d/%s", dirfd, filename);
> + int ret;
> +
> + ret = lgetxattr(proc_path, name, value, size);
> + g_free(proc_path);
> + return ret;
> +}
> +
> +ssize_t flistxattrat_nofollow(int dirfd, const char *filename,
> + char *list, size_t size)
> +{
> + char *proc_path = g_strdup_printf("/proc/self/fd/%d/%s", dirfd, filename);
> + int ret;
> +
> + ret = llistxattr(proc_path, list, size);
> + g_free(proc_path);
> + return ret;
> +}
> +
> +ssize_t fremovexattrat_nofollow(int dirfd, const char *filename,
> + const char *name)
> +{
> + char *proc_path = g_strdup_printf("/proc/self/fd/%d/%s", dirfd, filename);
> + int ret;
> +
> + ret = lremovexattr(proc_path, name);
> + g_free(proc_path);
> + return ret;
> +}
> +
> +int fsetxattrat_nofollow(int dirfd, const char *filename, const char *name,
> + void *value, size_t size, int flags)
> +{
> + char *proc_path = g_strdup_printf("/proc/self/fd/%d/%s", dirfd, filename);
> + int ret;
> +
> + ret = lsetxattr(proc_path, name, value, size, flags);
> + g_free(proc_path);
> + return ret;
> +}
> diff --git a/hw/9pfs/9p-util.c b/hw/9pfs/9p-util.c
> deleted file mode 100644
> index 614b7fc..0000000
> --- a/hw/9pfs/9p-util.c
> +++ /dev/null
> @@ -1,59 +0,0 @@
> -/*
> - * 9p utilities
> - *
> - * Copyright IBM, Corp. 2017
> - *
> - * Authors:
> - * Greg Kurz <groug@kaod.org>
> - *
> - * This work is licensed under the terms of the GNU GPL, version 2 or later.
> - * See the COPYING file in the top-level directory.
> - */
> -
> -#include "qemu/osdep.h"
> -#include "qemu/xattr.h"
> -#include "9p-util.h"
> -
> -ssize_t fgetxattrat_nofollow(int dirfd, const char *filename, const char *name,
> - void *value, size_t size)
> -{
> - char *proc_path = g_strdup_printf("/proc/self/fd/%d/%s", dirfd, filename);
> - int ret;
> -
> - ret = lgetxattr(proc_path, name, value, size);
> - g_free(proc_path);
> - return ret;
> -}
> -
> -ssize_t flistxattrat_nofollow(int dirfd, const char *filename,
> - char *list, size_t size)
> -{
> - char *proc_path = g_strdup_printf("/proc/self/fd/%d/%s", dirfd, filename);
> - int ret;
> -
> - ret = llistxattr(proc_path, list, size);
> - g_free(proc_path);
> - return ret;
> -}
> -
> -ssize_t fremovexattrat_nofollow(int dirfd, const char *filename,
> - const char *name)
> -{
> - char *proc_path = g_strdup_printf("/proc/self/fd/%d/%s", dirfd, filename);
> - int ret;
> -
> - ret = lremovexattr(proc_path, name);
> - g_free(proc_path);
> - return ret;
> -}
> -
> -int fsetxattrat_nofollow(int dirfd, const char *filename, const char *name,
> - void *value, size_t size, int flags)
> -{
> - char *proc_path = g_strdup_printf("/proc/self/fd/%d/%s", dirfd, filename);
> - int ret;
> -
> - ret = lsetxattr(proc_path, name, value, size, flags);
> - g_free(proc_path);
> - return ret;
> -}
> diff --git a/hw/9pfs/Makefile.objs b/hw/9pfs/Makefile.objs
> index fd90b62..083508f 100644
> --- a/hw/9pfs/Makefile.objs
> +++ b/hw/9pfs/Makefile.objs
> @@ -1,4 +1,5 @@
> -common-obj-y = 9p.o 9p-util.o
> +common-obj-y = 9p.o
> +common-obj-$(CONFIG_LINUX) += 9p-util-linux.o
> common-obj-y += 9p-local.o 9p-xattr.o
> common-obj-y += 9p-xattr-user.o 9p-posix-acl.o
> common-obj-y += coth.o cofs.o codir.o cofile.o