1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /*
- * 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;
- }
|