Commit 56fc494b authored by Greg Kurz's avatar Greg Kurz
Browse files

9pfs: local: move xattr security ops to 9p-xattr.c



These functions are always called indirectly. It really doesn't make sense
for them to sit in a header file.

Signed-off-by: default avatarGreg Kurz <groug@kaod.org>
Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
parent 9b9fbe8a
Loading
Loading
Loading
Loading
+61 −0
Original line number Diff line number Diff line
@@ -143,6 +143,67 @@ int v9fs_remove_xattr(FsContext *ctx,

}

ssize_t pt_getxattr(FsContext *ctx, const char *path, const char *name,
                    void *value, size_t size)
{
    char *buffer;
    ssize_t ret;

    buffer = rpath(ctx, path);
    ret = lgetxattr(buffer, name, value, size);
    g_free(buffer);
    return ret;
}

int pt_setxattr(FsContext *ctx, const char *path, const char *name, void *value,
                size_t size, int flags)
{
    char *buffer;
    int ret;

    buffer = rpath(ctx, path);
    ret = lsetxattr(buffer, name, value, size, flags);
    g_free(buffer);
    return ret;
}

int pt_removexattr(FsContext *ctx, const char *path, const char *name)
{
    char *buffer;
    int ret;

    buffer = rpath(ctx, path);
    ret = lremovexattr(path, name);
    g_free(buffer);
    return ret;
}

ssize_t notsup_getxattr(FsContext *ctx, const char *path, const char *name,
                        void *value, size_t size)
{
    errno = ENOTSUP;
    return -1;
}

int notsup_setxattr(FsContext *ctx, const char *path, const char *name,
                    void *value, size_t size, int flags)
{
    errno = ENOTSUP;
    return -1;
}

ssize_t notsup_listxattr(FsContext *ctx, const char *path, char *name,
                         void *value, size_t size)
{
    return 0;
}

int notsup_removexattr(FsContext *ctx, const char *path, const char *name)
{
    errno = ENOTSUP;
    return -1;
}

XattrOperations *mapped_xattr_ops[] = {
    &mapped_user_xattr,
    &mapped_pacl_xattr,
+14 −66
Original line number Diff line number Diff line
@@ -49,73 +49,21 @@ ssize_t v9fs_list_xattr(FsContext *ctx, const char *path, void *value,
int v9fs_set_xattr(FsContext *ctx, const char *path, const char *name,
                          void *value, size_t size, int flags);
int v9fs_remove_xattr(FsContext *ctx, const char *path, const char *name);

ssize_t pt_listxattr(FsContext *ctx, const char *path, char *name, void *value,
                     size_t size);
ssize_t pt_getxattr(FsContext *ctx, const char *path, const char *name,
                    void *value, size_t size);
int pt_setxattr(FsContext *ctx, const char *path, const char *name, void *value,
                size_t size, int flags);
int pt_removexattr(FsContext *ctx, const char *path, const char *name);

static inline ssize_t pt_getxattr(FsContext *ctx, const char *path,
                                  const char *name, void *value, size_t size)
{
    char *buffer;
    ssize_t ret;

    buffer = rpath(ctx, path);
    ret = lgetxattr(buffer, name, value, size);
    g_free(buffer);
    return ret;
}

static inline int pt_setxattr(FsContext *ctx, const char *path,
                              const char *name, void *value,
                              size_t size, int flags)
{
    char *buffer;
    int ret;

    buffer = rpath(ctx, path);
    ret = lsetxattr(buffer, name, value, size, flags);
    g_free(buffer);
    return ret;
}

static inline int pt_removexattr(FsContext *ctx,
                                 const char *path, const char *name)
{
    char *buffer;
    int ret;

    buffer = rpath(ctx, path);
    ret = lremovexattr(path, name);
    g_free(buffer);
    return ret;
}

static inline ssize_t notsup_getxattr(FsContext *ctx, const char *path,
                                      const char *name, void *value,
                                      size_t size)
{
    errno = ENOTSUP;
    return -1;
}

static inline int notsup_setxattr(FsContext *ctx, const char *path,
                                  const char *name, void *value,
                                  size_t size, int flags)
{
    errno = ENOTSUP;
    return -1;
}

static inline ssize_t notsup_listxattr(FsContext *ctx, const char *path,
                                       char *name, void *value, size_t size)
{
    return 0;
}

static inline int notsup_removexattr(FsContext *ctx,
                                     const char *path, const char *name)
{
    errno = ENOTSUP;
    return -1;
}
ssize_t notsup_getxattr(FsContext *ctx, const char *path, const char *name,
                        void *value, size_t size);
int notsup_setxattr(FsContext *ctx, const char *path, const char *name,
                    void *value, size_t size, int flags);
ssize_t notsup_listxattr(FsContext *ctx, const char *path, char *name,
                         void *value, size_t size);
int notsup_removexattr(FsContext *ctx, const char *path, const char *name);

#endif