#include <linux/fs.h>
#include <linux/xattr.h>
#include "overlayfs.h"
static bool ovl_is_escaped_xattr(struct super_block *sb, const char *name)
{ … }
static bool ovl_is_own_xattr(struct super_block *sb, const char *name)
{ … }
bool ovl_is_private_xattr(struct super_block *sb, const char *name)
{ … }
static int ovl_xattr_set(struct dentry *dentry, struct inode *inode, const char *name,
const void *value, size_t size, int flags)
{ … }
static int ovl_xattr_get(struct dentry *dentry, struct inode *inode, const char *name,
void *value, size_t size)
{ … }
static bool ovl_can_list(struct super_block *sb, const char *s)
{ … }
ssize_t ovl_listxattr(struct dentry *dentry, char *list, size_t size)
{ … }
static char *ovl_xattr_escape_name(const char *prefix, const char *name)
{ … }
static int ovl_own_xattr_get(const struct xattr_handler *handler,
struct dentry *dentry, struct inode *inode,
const char *name, void *buffer, size_t size)
{ … }
static int ovl_own_xattr_set(const struct xattr_handler *handler,
struct mnt_idmap *idmap,
struct dentry *dentry, struct inode *inode,
const char *name, const void *value,
size_t size, int flags)
{ … }
static int ovl_other_xattr_get(const struct xattr_handler *handler,
struct dentry *dentry, struct inode *inode,
const char *name, void *buffer, size_t size)
{ … }
static int ovl_other_xattr_set(const struct xattr_handler *handler,
struct mnt_idmap *idmap,
struct dentry *dentry, struct inode *inode,
const char *name, const void *value,
size_t size, int flags)
{ … }
static const struct xattr_handler ovl_own_trusted_xattr_handler = …;
static const struct xattr_handler ovl_own_user_xattr_handler = …;
static const struct xattr_handler ovl_other_xattr_handler = …;
static const struct xattr_handler * const ovl_trusted_xattr_handlers[] = …;
static const struct xattr_handler * const ovl_user_xattr_handlers[] = …;
const struct xattr_handler * const *ovl_xattr_handlers(struct ovl_fs *ofs)
{ … }