ext4: export inline xattr functions
The inline data feature will need some inline xattr functions, so export them from fs/ext4/xattr.c so that inline.c can use them. Signed-off-by: Tao Ma <boyu.mt@taobao.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
parent
152a7b0a80
commit
879b38257b
@ -61,11 +61,6 @@
|
||||
#include "xattr.h"
|
||||
#include "acl.h"
|
||||
|
||||
#define BHDR(bh) ((struct ext4_xattr_header *)((bh)->b_data))
|
||||
#define ENTRY(ptr) ((struct ext4_xattr_entry *)(ptr))
|
||||
#define BFIRST(bh) ENTRY(BHDR(bh)+1)
|
||||
#define IS_LAST_ENTRY(entry) (*(__u32 *)(entry) == 0)
|
||||
|
||||
#ifdef EXT4_XATTR_DEBUG
|
||||
# define ea_idebug(inode, f...) do { \
|
||||
printk(KERN_DEBUG "inode %s:%lu: ", \
|
||||
@ -312,7 +307,7 @@ cleanup:
|
||||
return error;
|
||||
}
|
||||
|
||||
static int
|
||||
int
|
||||
ext4_xattr_ibody_get(struct inode *inode, int name_index, const char *name,
|
||||
void *buffer, size_t buffer_size)
|
||||
{
|
||||
@ -581,21 +576,6 @@ static size_t ext4_xattr_free_space(struct ext4_xattr_entry *last,
|
||||
return (*min_offs - ((void *)last - base) - sizeof(__u32));
|
||||
}
|
||||
|
||||
struct ext4_xattr_info {
|
||||
int name_index;
|
||||
const char *name;
|
||||
const void *value;
|
||||
size_t value_len;
|
||||
};
|
||||
|
||||
struct ext4_xattr_search {
|
||||
struct ext4_xattr_entry *first;
|
||||
void *base;
|
||||
void *end;
|
||||
struct ext4_xattr_entry *here;
|
||||
int not_found;
|
||||
};
|
||||
|
||||
static int
|
||||
ext4_xattr_set_entry(struct ext4_xattr_info *i, struct ext4_xattr_search *s)
|
||||
{
|
||||
@ -949,14 +929,8 @@ bad_block:
|
||||
#undef header
|
||||
}
|
||||
|
||||
struct ext4_xattr_ibody_find {
|
||||
struct ext4_xattr_search s;
|
||||
struct ext4_iloc iloc;
|
||||
};
|
||||
|
||||
static int
|
||||
ext4_xattr_ibody_find(struct inode *inode, struct ext4_xattr_info *i,
|
||||
struct ext4_xattr_ibody_find *is)
|
||||
int ext4_xattr_ibody_find(struct inode *inode, struct ext4_xattr_info *i,
|
||||
struct ext4_xattr_ibody_find *is)
|
||||
{
|
||||
struct ext4_xattr_ibody_header *header;
|
||||
struct ext4_inode *raw_inode;
|
||||
@ -984,10 +958,9 @@ ext4_xattr_ibody_find(struct inode *inode, struct ext4_xattr_info *i,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
ext4_xattr_ibody_set(handle_t *handle, struct inode *inode,
|
||||
struct ext4_xattr_info *i,
|
||||
struct ext4_xattr_ibody_find *is)
|
||||
int ext4_xattr_ibody_set(handle_t *handle, struct inode *inode,
|
||||
struct ext4_xattr_info *i,
|
||||
struct ext4_xattr_ibody_find *is)
|
||||
{
|
||||
struct ext4_xattr_ibody_header *header;
|
||||
struct ext4_xattr_search *s = &is->s;
|
||||
|
@ -65,6 +65,32 @@ struct ext4_xattr_entry {
|
||||
EXT4_I(inode)->i_extra_isize))
|
||||
#define IFIRST(hdr) ((struct ext4_xattr_entry *)((hdr)+1))
|
||||
|
||||
#define BHDR(bh) ((struct ext4_xattr_header *)((bh)->b_data))
|
||||
#define ENTRY(ptr) ((struct ext4_xattr_entry *)(ptr))
|
||||
#define BFIRST(bh) ENTRY(BHDR(bh)+1)
|
||||
#define IS_LAST_ENTRY(entry) (*(__u32 *)(entry) == 0)
|
||||
|
||||
|
||||
struct ext4_xattr_info {
|
||||
int name_index;
|
||||
const char *name;
|
||||
const void *value;
|
||||
size_t value_len;
|
||||
};
|
||||
|
||||
struct ext4_xattr_search {
|
||||
struct ext4_xattr_entry *first;
|
||||
void *base;
|
||||
void *end;
|
||||
struct ext4_xattr_entry *here;
|
||||
int not_found;
|
||||
};
|
||||
|
||||
struct ext4_xattr_ibody_find {
|
||||
struct ext4_xattr_search s;
|
||||
struct ext4_iloc iloc;
|
||||
};
|
||||
|
||||
# ifdef CONFIG_EXT4_FS_XATTR
|
||||
|
||||
extern const struct xattr_handler ext4_xattr_user_handler;
|
||||
@ -90,6 +116,15 @@ extern void ext4_exit_xattr(void);
|
||||
|
||||
extern const struct xattr_handler *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);
|
||||
|
||||
# else /* CONFIG_EXT4_FS_XATTR */
|
||||
|
||||
static inline int
|
||||
@ -143,6 +178,29 @@ ext4_expand_extra_isize_ea(struct inode *inode, int new_extra_isize,
|
||||
|
||||
#define ext4_xattr_handlers NULL
|
||||
|
||||
static inline int
|
||||
ext4_xattr_ibody_find(struct inode *inode, struct ext4_xattr_info *i,
|
||||
struct ext4_xattr_ibody_find *is)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static inline int
|
||||
ext4_xattr_ibody_set(handle_t *handle, struct inode *inode,
|
||||
struct ext4_xattr_info *i,
|
||||
struct ext4_xattr_ibody_find *is)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static inline int
|
||||
ext4_xattr_ibody_get(struct inode *inode, int name_index,
|
||||
const char *name,
|
||||
void *buffer, size_t buffer_size)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
# endif /* CONFIG_EXT4_FS_XATTR */
|
||||
|
||||
#ifdef CONFIG_EXT4_FS_SECURITY
|
||||
|
Loading…
Reference in New Issue
Block a user