[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 07/20] 9p: Move a couple xattr functions to 9
From: |
Greg Kurz |
Subject: |
Re: [Qemu-devel] [PATCH v2 07/20] 9p: Move a couple xattr functions to 9p-util |
Date: |
Fri, 1 Jun 2018 12:03:07 +0200 |
On Thu, 31 May 2018 21:26:02 -0400
Keno Fischer <address@hidden> wrote:
> These functions will need custom implementations on Darwin. Since the
> implementation is very similar among all of them, and 9p-util already
> has the _nofollow version of fgetxattrat, let's move them all there.
>
> Signed-off-by: Keno Fischer <address@hidden>
> ---
>
This cleanup makes sense irrespective of the rest of the series.
Applied to 9p-next.
Thanks!
> Changes since v1:
> * fgetxattr_follow is dropped in favor of a different approach
> later in the series.
>
> hw/9pfs/9p-util.c | 33 +++++++++++++++++++++++++++++++++
> hw/9pfs/9p-util.h | 4 ++++
> hw/9pfs/9p-xattr.c | 33 ---------------------------------
> 3 files changed, 37 insertions(+), 33 deletions(-)
>
> diff --git a/hw/9pfs/9p-util.c b/hw/9pfs/9p-util.c
> index f709c27..614b7fc 100644
> --- a/hw/9pfs/9p-util.c
> +++ b/hw/9pfs/9p-util.c
> @@ -24,3 +24,36 @@ ssize_t fgetxattrat_nofollow(int dirfd, const char
> *filename, const char *name,
> 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.h b/hw/9pfs/9p-util.h
> index dc0d2e2..79ed6b2 100644
> --- a/hw/9pfs/9p-util.h
> +++ b/hw/9pfs/9p-util.h
> @@ -60,5 +60,9 @@ ssize_t fgetxattrat_nofollow(int dirfd, const char *path,
> const char *name,
> void *value, size_t size);
> int fsetxattrat_nofollow(int dirfd, const char *path, const char *name,
> void *value, size_t size, int flags);
> +ssize_t flistxattrat_nofollow(int dirfd, const char *filename,
> + char *list, size_t size);
> +ssize_t fremovexattrat_nofollow(int dirfd, const char *filename,
> + const char *name);
>
> #endif
> diff --git a/hw/9pfs/9p-xattr.c b/hw/9pfs/9p-xattr.c
> index d05c1a1..c696d8f 100644
> --- a/hw/9pfs/9p-xattr.c
> +++ b/hw/9pfs/9p-xattr.c
> @@ -60,17 +60,6 @@ ssize_t pt_listxattr(FsContext *ctx, const char *path,
> return name_size;
> }
>
> -static 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;
> -}
> -
> /*
> * Get the list and pass to each layer to find out whether
> * to send the data or not
> @@ -196,17 +185,6 @@ ssize_t pt_getxattr(FsContext *ctx, const char *path,
> const char *name,
> return local_getxattr_nofollow(ctx, path, name, value, size);
> }
>
> -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;
> -}
> -
> ssize_t local_setxattr_nofollow(FsContext *ctx, const char *path,
> const char *name, void *value, size_t size,
> int flags)
> @@ -235,17 +213,6 @@ int pt_setxattr(FsContext *ctx, const char *path, const
> char *name, void *value,
> return local_setxattr_nofollow(ctx, path, name, value, size, flags);
> }
>
> -static 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;
> -}
> -
> ssize_t local_removexattr_nofollow(FsContext *ctx, const char *path,
> const char *name)
> {
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH v2 07/20] 9p: Move a couple xattr functions to 9p-util,
Greg Kurz <=