#include <linux/xattr.h>
#define EXT4_XATTR_MAGIC …
#define EXT4_XATTR_REFCOUNT_MAX …
#define EXT4_XATTR_INDEX_USER …
#define EXT4_XATTR_INDEX_POSIX_ACL_ACCESS …
#define EXT4_XATTR_INDEX_POSIX_ACL_DEFAULT …
#define EXT4_XATTR_INDEX_TRUSTED …
#define EXT4_XATTR_INDEX_LUSTRE …
#define EXT4_XATTR_INDEX_SECURITY …
#define EXT4_XATTR_INDEX_SYSTEM …
#define EXT4_XATTR_INDEX_RICHACL …
#define EXT4_XATTR_INDEX_ENCRYPTION …
#define EXT4_XATTR_INDEX_HURD …
struct ext4_xattr_header { … };
struct ext4_xattr_ibody_header { … };
struct ext4_xattr_entry { … };
#define EXT4_XATTR_PAD_BITS …
#define EXT4_XATTR_PAD …
#define EXT4_XATTR_ROUND …
#define EXT4_XATTR_LEN(name_len) …
#define EXT4_XATTR_NEXT(entry) …
#define EXT4_XATTR_SIZE(size) …
#define IHDR(inode, raw_inode) …
#define IFIRST(hdr) …
#define EXT4_XATTR_SIZE_MAX …
#define EXT4_XATTR_MIN_LARGE_EA_SIZE(b) …
#define BHDR(bh) …
#define ENTRY(ptr) …
#define BFIRST(bh) …
#define IS_LAST_ENTRY(entry) …
#define EXT4_ZERO_XATTR_VALUE …
#define EXT4_INODE_HAS_XATTR_SPACE(inode) …
struct ext4_xattr_info { … };
struct ext4_xattr_search { … };
struct ext4_xattr_ibody_find { … };
struct ext4_xattr_inode_array { … };
extern const struct xattr_handler ext4_xattr_user_handler;
extern const struct xattr_handler ext4_xattr_trusted_handler;
extern const struct xattr_handler ext4_xattr_security_handler;
extern const struct xattr_handler ext4_xattr_hurd_handler;
#define EXT4_XATTR_NAME_ENCRYPTION_CONTEXT …
static inline void ext4_write_lock_xattr(struct inode *inode, int *save)
{ … }
static inline int ext4_write_trylock_xattr(struct inode *inode, int *save)
{ … }
static inline void ext4_write_unlock_xattr(struct inode *inode, int *save)
{ … }
extern ssize_t ext4_listxattr(struct dentry *, char *, size_t);
extern int ext4_xattr_get(struct inode *, int, const char *, void *, size_t);
extern int ext4_xattr_set(struct inode *, int, const char *, const void *, size_t, int);
extern int ext4_xattr_set_handle(handle_t *, struct inode *, int, const char *, const void *, size_t, int);
extern int ext4_xattr_set_credits(struct inode *inode, size_t value_len,
bool is_create, int *credits);
extern int __ext4_xattr_set_credits(struct super_block *sb, struct inode *inode,
struct buffer_head *block_bh, size_t value_len,
bool is_create);
extern int ext4_xattr_delete_inode(handle_t *handle, struct inode *inode,
struct ext4_xattr_inode_array **array,
int extra_credits);
extern void ext4_xattr_inode_array_free(struct ext4_xattr_inode_array *array);
extern int ext4_expand_extra_isize_ea(struct inode *inode, int new_extra_isize,
struct ext4_inode *raw_inode, handle_t *handle);
extern void ext4_evict_ea_inode(struct inode *inode);
extern const struct xattr_handler * const ext4_xattr_handlers[];
extern int ext4_xattr_ibody_find(struct inode *inode, struct ext4_xattr_info *i,
struct ext4_xattr_ibody_find *is);
extern int ext4_xattr_ibody_get(struct inode *inode, int name_index,
const char *name,
void *buffer, size_t buffer_size);
extern int ext4_xattr_ibody_set(handle_t *handle, struct inode *inode,
struct ext4_xattr_info *i,
struct ext4_xattr_ibody_find *is);
extern struct mb_cache *ext4_xattr_create_cache(void);
extern void ext4_xattr_destroy_cache(struct mb_cache *);
#ifdef CONFIG_EXT4_FS_SECURITY
extern int ext4_init_security(handle_t *handle, struct inode *inode,
struct inode *dir, const struct qstr *qstr);
#else
static inline int ext4_init_security(handle_t *handle, struct inode *inode,
struct inode *dir, const struct qstr *qstr)
{
return 0;
}
#endif
#ifdef CONFIG_LOCKDEP
extern void ext4_xattr_inode_set_class(struct inode *ea_inode);
#else
static inline void ext4_xattr_inode_set_class(struct inode *ea_inode) { }
#endif
extern int ext4_get_inode_usage(struct inode *inode, qsize_t *usage);