[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 3/7] 9p: Move a couple xattr functions to 9p-util
From: |
Greg Kurz |
Subject: |
[Qemu-devel] [PULL 3/7] 9p: Move a couple xattr functions to 9p-util |
Date: |
Thu, 7 Jun 2018 17:21:15 +0200 |
From: Keno Fischer <address@hidden>
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>
Signed-off-by: Greg Kurz <address@hidden>
---
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 f709c27a1fbd..614b7fc34d54 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 dc0d2e29aa3b..79ed6b233e58 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 d05c1a1c1df5..c696d8f8460f 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)
{
--
2.14.4
- [Qemu-devel] [PULL 0/7] 9p patches 2018-06-07, Greg Kurz, 2018/06/07
- [Qemu-devel] [PULL 4/7] 9p: xattr: Fix crashes due to free of uninitialized value, Greg Kurz, 2018/06/07
- [Qemu-devel] [PULL 5/7] 9p: local: Avoid warning if FS_IOC_GETVERSION is not defined, Greg Kurz, 2018/06/07
- [Qemu-devel] [PULL 6/7] 9p: Properly check/translate flags in unlinkat, Greg Kurz, 2018/06/07
- [Qemu-devel] [PULL 2/7] 9p: local: Properly set errp in fstatfs error path, Greg Kurz, 2018/06/07
- [Qemu-devel] [PULL 1/7] 9p: proxy: Fix size passed to `connect`, Greg Kurz, 2018/06/07
- [Qemu-devel] [PULL 3/7] 9p: Move a couple xattr functions to 9p-util,
Greg Kurz <=
- [Qemu-devel] [PULL 7/7] 9p: xattr: Properly translate xattrcreate flags, Greg Kurz, 2018/06/07
- Re: [Qemu-devel] [PULL 0/7] 9p patches 2018-06-07, Peter Maydell, 2018/06/08